if(!code || !/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[12])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i.test(code)){
alert("身份证号格式错误");
}
请问这段代码到底哪里出问题了呢,code为身份证号,绝大部分身份证可以通过,但是部分身份证却不可以,本人没深入了解过正则表达式,请明白的大大给看看,非常感谢JS身份证验证问题
alert("身份证号格式错误");
}
请问这段代码到底哪里出问题了呢,code为身份证号,绝大部分身份证可以通过,但是部分身份证却不可以,本人没深入了解过正则表达式,请明白的大大给看看,非常感谢JS身份证验证问题
解决方案 »
- 网页上的Applet显示不出来,总是在JAVA控制台上报错NoClassDefFund
- 学java怎么最快入门
- 100 分问做界面的问题. 给主意就送分.
- swt tree select
- 物业管理,大家给个思路吧(up有分,分不够在补!)
- (高分求助)linux下,java如何访问win2000下的sqlserver?(在线等)
- 为什么在paint方法里会执行2次?
- 帮忙基于TCP/IP协议的文件传输编程!!!!!!!!!!!!!!!!!!!(((((急)))))
- 急救:怎样将class文件打包成可执行的jar文件?
- ACM一道题老提示RuntimeError
- 在指定控件下面弹出控件
- 关于方法覆盖的返回值类型的疑问
改为这个吧
\d{6} //-6位数字
(18|19|20)? //年份前两位(指定了18,18,20),其他的不满足
\d{2} //年份后两位
(0[1-9]|1[12]) // 月份
(0[1-9]|[12]\d|3[01]) //日
\d{3} //三位数字
(\d|X)// 一位数字或者X
$/i // 忽略大小写整个正则校验18位,如果是少于18位的 肯定校验不过
网上有很多这样的例子,拿来一个研究下就OK一楼的判断虽然可行,但是比较简单,如果想要很严格的校验身份证,就要查看身份证生成规则了