javascript正则验证身份证写法

var str="510182192010316413";
			var p=/^[1-9]\d{5}(19|20)[0-9]\d{1}((0?[1-9])|1[012])(([0|1|2]\d)|3[0|1])\d{4}$/;
			var d=str.match(p);
			if(d!=null){
				console.log(d);
			}else{
				console.log('没有匹配到');
			}

1\d{5}是验证前6位数字,如果前面有[]包含的数字索引是从0开始
(19|20)是选择19XX年或是20XX年
[0-9]\d{1}是验证后面19/20后面两位数字索引也是从0开始,两位就是{1}
((0?[1-9])|1[012])验证月份,?意思是前面的0至少出现1次,然后和1-9组合,后是1和012相组合
(([0|1|2]\d)|3[0|1])验证天数0123和自然数0-9组合
\d{4}这里面是后面的4个数字,如果前面没有方括号,索引是从1开始
当然这个只是一个简单的身份验证,相关的15位身份证或是后面是X结尾的验证可以从上面扩展。


  1. 1-9 ↩︎

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值