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 ↩︎

猜你喜欢

转载自blog.csdn.net/cdcdhj/article/details/111410415