15/18位身份证号码验证的正则表达式总结(详细版)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了15/18位身份证号码验证的正则表达式总结(详细版)相关的知识,希望对你有一定的参考价值。

前言

开发过程中,常常需要对一些输入信息进行有效性验证,使用正则表达式进行校验是最简单、效率最高的方式了,下面就来看看15/18位身份证号码验证的正则表达式吧。

介绍

xxxxxx yyyy MM dd 375 0     十八位

xxxxxx    yy MM dd   75 0     十五位

地区: [1-9]\d{5}

年的前两位: (18|19|([23]\d))            1800-2399

年的后两位: \d{2}

月份: ((0[1-9])|(10|11|12)) 

天数: (([0-2][1-9])|10|20|30|31)          闰年不能禁止29+

三位顺序码: \d{3}

两位顺序码: \d{2}

校验码: [0-9Xx]

正则表达式

十八位: ^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$

十五位: ^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$

总:

^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)

简单的JS验证示例

 
 
 
 
 
 
 
 
 
 
function isCardNo(card)
{
// 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if(reg.test(card) === false)
{
alert("身份证输入不合法");
return false;
}
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

 

另外加一个 台湾人和香港人 身份证 正则表达式   /^[a-zA-Z][0-9]{9}$/

以上是关于15/18位身份证号码验证的正则表达式总结(详细版)的主要内容,如果未能解决你的问题,请参考以下文章

验证身份证号码的正确正则表达式

身份证号码的正则表达式及验证详解(JavaScript,Regex)

身份证号码的正则表达式及验证详解(JavaScript,Regex)

你不知道的正则表达式

身份证号码验证正则表达式及用法(包括:位数规则等)

JS正则表达式验证身份证号码