身份证正则

身份证正则

验证身份证号,要求15位或者18位的数字,18位时最后一位可能是x

var pattern = /^\d+(x?)${15,18}/i;

这样对吗

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,

  1.  现在15位的身份证很少了,大部分都是18位的了,如果同学要考虑兼容15位的身份证号,可以参考下面的写法, 十五位身份证都是数字, 然后使用|符号表示或的情况

    http://img1.sycdn.imooc.com//climg/5d3936a000014dcc06300214.jpg

  2. []确实表示匹配中括号范围内的一个字符。 [0-9x]的范围就是0-9和x,简单理解就是18位身份证的最后一位是数字的时候就匹配数字,是字母x的时候就会匹配字母x哦。

    (1)最后一个是x的情况

    http://img1.sycdn.imooc.com//climg/5d39385f00017c1d06410151.jpg

    效果图:

    http://img1.sycdn.imooc.com//climg/5d3938730001730608510201.jpg

    (2)最后一个是数字

    http://img1.sycdn.imooc.com//climg/5d3938880001ccdb07190223.jpg

    效果图:

    http://img1.sycdn.imooc.com//climg/5d3938940001757908380210.jpg

    (3)15位的身份证号

    http://img1.sycdn.imooc.com//climg/5d3938ab0001b42906100156.jpg

    效果图:

    http://img1.sycdn.imooc.com//climg/5d3938ba0001dfee08010225.jpg

    (4)不满足条件的话, 就不匹配不到哦

    http://img1.sycdn.imooc.com//climg/5d3938ef0001ac6905710141.jpg

    效果图:

    http://img1.sycdn.imooc.com//climg/5d3938f700012a1702530077.jpg

同学可以结合示例代码,自己下去测试一下哦,然后结合代码实现的效果去帮助自己理解

如果帮助到了你, 欢迎采纳!

祝学习愉快~~~~

好帮手慕慕子 2019-07-25 11:45:44

同学你好, 你这样写不对哦, 首先,$符号应该放在量词(也就是表示匹配多少位)后面。然后, \d+表示匹配至少一个数字,导致最终结果可以匹配任意数字哦。

建议: 参考下面的正则表达式理解

http://img1.sycdn.imooc.com//climg/5d3925d3000178d406220204.jpg

如果帮助到了你,欢迎采纳!

祝学习愉快~~~~

  • 提问者 JJJustin #1
    老师你这个写法能兼容15位身份证的情况吗
    2019-07-25 12:29:55
  • 提问者 JJJustin #2
    老师还有个问题 []里面不是只会匹配一个字符吗 你写0-9 x会不会匹配到0-9就返回了
    2019-07-25 12:34:33
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师