php 身份证的正则表达式怎么写? 10
//身份证正则表达式(15位)$isIDCard1="/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/";/...
//身份证正则表达式(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) 展开
$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) 展开
4个回答
展开全部
一般地 身份证有15位或18位 18位的最后一位还有可能是字母X或x
/^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
15: /^\d{14}(\d|x)$/
18: /^\d{17}(\d|x)$/
这样就可以了,不用那么复杂吧
18: /^\d{17}(\d|x)$/
这样就可以了,不用那么复杂吧
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询