身份证正则

来源:4-8 编程练习

JJJustin

2019-07-25 10:48:58

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

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

这样对吗

写回答

2回答

好帮手慕慕子

2019-07-25

同学你好,

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

    http://img.mukewang.com/climg/5d3936a000014dcc06300214.jpg

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

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

    http://img.mukewang.com/climg/5d39385f00017c1d06410151.jpg

    效果图:

    http://img.mukewang.com/climg/5d3938730001730608510201.jpg

    (2)最后一个是数字

    http://img.mukewang.com/climg/5d3938880001ccdb07190223.jpg

    效果图:

    http://img.mukewang.com/climg/5d3938940001757908380210.jpg

    (3)15位的身份证号

    http://img.mukewang.com/climg/5d3938ab0001b42906100156.jpg

    效果图:

    http://img.mukewang.com/climg/5d3938ba0001dfee08010225.jpg

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

    http://img.mukewang.com/climg/5d3938ef0001ac6905710141.jpg

    效果图:

    http://img.mukewang.com/climg/5d3938f700012a1702530077.jpg

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

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

祝学习愉快~~~~

0

好帮手慕慕子

2019-07-25

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

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

http://img.mukewang.com/climg/5d3925d3000178d406220204.jpg

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

祝学习愉快~~~~

0
hJJustin
h 老师还有个问题 []里面不是只会匹配一个字符吗 你写0-9 x会不会匹配到0-9就返回了
h019-07-25
共2条回复

0 学习 · 14456 问题

查看课程