[b]前言[/b]
开发过程中,常常需要对一些输入信息进行有效性验证,使用正则表达式进行校验是最简单、效率最高的方式了,下面就来看看15/18位身份证号码验证的正则表达式吧。
[b]介绍[/b]
xxxxxx yyyy MM dd 375 0 十八位
xxxxxx yy MM dd 75 0 十五位
地区: [code][1-9]\d{5}[/code]
年的前两位: [code](18|19|([23]\d))[/code] 1800-2399
年的后两位:[code] \d{2}[/code]
月份: [code]((0[1-9])|(10|11|12))[/code]
天数: [code](([0-2][1-9])|10|20|30|31)[/code] 闰年不能禁止29+
三位顺序码: [code]\d{3}[/code]
两位顺序码: [code]\d{2}[/code]
校验码: [code][0-9Xx][/code]
[b]正则表达式[/b]
十八位: [code]^[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]$[/code]
十五位: [code]^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$[/code]
[b]总:[/b]
( [code]^[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}$[/code])
[b]简单的JS验证示例[/b]
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;
}
}
[b]总结[/b]
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对编程素材网的支持。