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)
展开
 我来答
弹指之间一笑
推荐于2018-03-07
知道答主
回答量:1
采纳率:100%
帮助的人:1249
展开全部
$IdCard = "/^[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)$/i";
提示 :正则格式: ‘/正则表达式/模式修正符’;
所以 添加 i 是忽略英文字母大小写的
小逗要减肥呀
2015-10-12 · 超过16用户采纳过TA的回答
知道答主
回答量:56
采纳率:100%
帮助的人:20.8万
展开全部

一般地 身份证有15位或18位  18位的最后一位还有可能是字母X或x  

/^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
amber1003
2011-06-07 · TA获得超过122个赞
知道答主
回答量:118
采纳率:0%
帮助的人:90.2万
展开全部
15: /^\d{14}(\d|x)$/
18: /^\d{17}(\d|x)$/
这样就可以了,不用那么复杂吧
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gulingling2011
2011-06-07
知道答主
回答量:14
采纳率:0%
帮助的人:9.8万
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式