//身份证正则表达式(15位) $isIDCard1="/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/"; //身份证正则表达式(18位) $isIDCard2="/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/"; 以上的正则表达式匹配的字符,只能匹配出数字的号码,现在的身份证好多,最后的都带有字母,如X, 这个最常见,其他的我不知道有没有,如果最末尾的是字符的话,上面的匹配内容就不正确了,有哪位知道的正则表达式可以匹配带字母和不带字母的通用的表达式,麻烦贴上来,谢谢,如果有其他常用的表达式也一并贴上来,如邮箱,电话号码等这个是修正后的//身份证正则表达式(15位) $isIDCard1="/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/"; //身份证正则表达式(18位) $isIDCard2="/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/"; preg_match($isIDCard1,身份证号码, $matches)