首页 > 试题广场 >

关于身份证号,以下正确的正则表达式为( &nbs...

[不定项选择题]
关于身份证号,以下正确的正则表达式为(      )
  • isIDCard=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
  • isIDCard=/^[1-9]\d{7}((9\d)|(1[0-2]))(([0|1|2]\d)|3[9-1])\d{3}$/;
  • isIDCard=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;
  • isIDCard=/^[1-9]\d{5}[1-9]\d{3}((9\d)|(1[9-2]))(([0|1|2]\d)|3[9-1])\d{4}$/;
正确选项
A选项:isIDCard=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/
C选项:isIDCard=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/
^:起始符号,^x表示以x开头
$:结束符号,x$表示以x结尾
[n-m]:表示从n到m的数字
\d:表示数字,等同于[0-9]
X{m}:表示由m个X字符构成,\d{4}表示4位数字

15位身份证的构成:六位出生地区码+六位出身日期码+三位顺序码
18位身份证的构成:六位出生地区码+八位出生日期码+三位顺序码+一位校验码

C选项的构成:
[1-9]\d{5}:六位出生地区码,出生地区码没有以0开头,因此第一位为[1-9]。
[1-9]\d{3}:八位出生日期码的四位年份,同样年份没有以0开头。
((0\d)|(1[0-2])):八位出生日期码的两位月份,| 表示或者,月份的形式为0\d或者是10、11、12。
(([0|1|2]\d)|3[0-1]):八位出生日期码的两位日期,日期由01至31。
\d{4}:三位顺序码+一位校验码,共四位。
A选项的构成:
[1-9]\d{7}:六位出生地区码+两位出生日期码的年份,这里的年份指后两位,因此没有第一位不能为0的限制,所以合并了。
后面的与C选项类似了。
好吧其实我也是第一次知道身份证还有15位的。
发表于 2019-09-04 09:49:47 回复(47)
这题真不会,也不想会
发表于 2019-08-15 21:50:01 回复(26)
本x结尾的身份证表示不服
发表于 2019-09-06 20:45:10 回复(12)
对于15位身份证验证:有AB两个选项;18位身份证有BD选项
^表示开头
[1-9]: 表示是一位1-9之间的数
\d{7}: 表示七位数字
((0\d) | (1[0-2])): 表示的是月份,是两位数,即0加一位数字,或者10/11/12。这里就可以得到答案了,选AC
还要琢磨下去可参考:
发表于 2019-08-22 19:45:16 回复(3)
我只知道有18位数的身份证.emmm,我咋整
发表于 2020-03-03 22:57:22 回复(0)
好吧其实我也是第一次知道身份证还有15位的。
发表于 2019-09-11 09:42:41 回复(0)
这题目都不对,看一眼就不选了,最后一位可能为x
发表于 2019-08-27 22:19:11 回复(0)
月份跟日期的
0\d
包含了00吧
发表于 2019-10-08 16:08:13 回复(3)
刚好避开
发表于 2019-08-18 15:41:07 回复(0)
没有意义,谁回去记忆这些正则表达式,不都是现查吗?浪费脑细胞。
发表于 2021-06-06 18:55:52 回复(2)
我算是屏蔽不掉你了(手动再见
发表于 2019-08-27 10:55:50 回复(1)
15位身份证是老身份证,现在都是18位的了,
发表于 2022-03-22 20:07:20 回复(0)
正确选项
A选项:isIDCard=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/
C选项:isIDCard=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/
^:起始符号,^x表示以x开头
$:结束符号,x$表示以x结尾
[n-m]:表示从n到m的数字
\d:表示数字,等同于[0-9]
X{m}:表示由m个X字符构成,\d{4}表示4位数字

15位身份证的构成:六位出生地区码+六位出身日期码+三位顺序码
18位身份证的构成:六位出生地区码+八位出生日期码+三位顺序码+一位校验码

C选项的构成:
[1-9]\d{5}:六位出生地区码,出生地区码没有以0开头,因此第一位为[1-9]。
[1-9]\d{3}:八位出生日期码的四位年份,同样年份没有以0开头。
((0\d)|(1[0-2])):八位出生日期码的两位月份,| 表示或者,月份的形式为0\d或者是10、11、12。
(([0|1|2]\d)|3[0-1]):八位出生日期码的两位日期,日期由01至31。
\d{4}:三位顺序码+一位校验码,共四位。
A选项的构成:
[1-9]\d{7}:六位出生地区码+两位出生日期码的年份,这里的年份指后两位,因此没有第一位不能为0的限制,所以合并了。
后面的与C选项类似了。
好吧其实我也是第一次知道身份证还有15位的。

--出自牛客网友,侵联删
发表于 2021-03-12 11:45:53 回复(0)
这题我一眼不会

发表于 2022-03-04 22:03:46 回复(0)
我,第一次知道还有15位的身份证号码【吐血】
发表于 2020-12-16 00:13:03 回复(0)
蒙的都对 做的都错 我太难了
发表于 2019-08-18 17:57:15 回复(1)
正则表达式忘的差不多了🤣
发表于 2019-08-15 22:21:28 回复(0)
其实很简单的,看年月日的 月和 日部分,尤其是日,选项里有很明显的39号日期,一眼丁真。

发表于 2022-09-16 15:01:32 回复(0)
都啥年头了,95后们表示不知道还有15位的身份证号
发表于 2022-01-07 20:40:19 回复(1)
发表于 2021-07-22 23:25:49 回复(0)