• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

一个正则表达式的有关问题,数字的个数写1就可以匹配下,写比1大的就匹配不下了

php 搞代码 3年前 (2022-01-24) 23次浏览 已收录 0个评论

一个正则表达式的问题,数字的个数写1就可以匹配上,写比1大的就匹配不上了。
正则如下:

<br />$patten='/^[1-9]\d{5}[1-2]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/';//就是最后这个4<br />

如果把最后那个4改成1,就能匹配的上,改成比1大的就不行了

这个正则是想用来匹配身份证号码的,如果哪位大侠有的话希望能发出来借鉴一下~兼容15位和18位的~

——解决方案——————–
1、身份证号码含义:
一代(现已淘汰,不必判断了)
地区代码(6位)出生年(2位)出生月(2位)出生日(2位)顺号(3位) 共15位
二代
地区代码(6位)出生年(4位)出生月(2位)出生日(2位)顺号(3位)校验位(1位) 共18位
校验位可能是 X
2、简单判定,只需判断位数是否正确即可
/^\d{15}(?:\d{2}[\dX])?$/
3、精确判定(二代)应使

5本文来源gao!daima.com搞$代!码#网#

搞代gaodaima码

用校验码生成算法。各种语言的“身份证校验码生成函数”都可以在网上找到

——解决方案——————–
validateidnumber( 22111111111234563 );

用字符串,数值的话就越界了
本来身份证号就应该是字符串


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:一个正则表达式的有关问题,数字的个数写1就可以匹配下,写比1大的就匹配不下了

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址