港澳台居民居住证的正则怎么解读?

在网上搜了下港澳台居民居住证的正则表达式
/^8[123]0000(?:19|20)\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])\d{3}[\dX]$/,但是看不懂各项是什么意思(只能看懂是8 1/2/3 0000开头),能来个正则大佬帮忙解释下么?

阅读 4.8k
1 个回答
/^8[123]0000(?:19|20)\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])\d{3}[\dX]$/

港澳台居民居住证中的公民身份号码地址码的编号规则为:

  1. 香港居民使用810000。
  2. 澳门居民使用820000。
  3. 台湾居民使用830000。
    公民身份号码共18位,前6位为行政区划代码,第7至14位为出生日期码,第15至17位为顺序码,第17位也可以辨认性别,奇数为男,偶数为女,第18位为校验码。

根据规则看就明白了
举例: 830000-19920130-002-2

  • ^:表示匹配字符串的开头。$:表示匹配字符串的结尾。都使用时精确匹配
  • 8[123]0000:这部分匹配以 "830000"、"810000" 或 "820000" 开头的数字。
  • (?:19|20):这是一个非捕获性分组,匹配 "19" 或 "20"。
  • \d{2}:匹配两位数字,通常用于表示年份的后两位。
  • (?:0[1-9]|1[0-2]):另一个非捕获性分组,匹配 "01" 到 "09" 或 "10" 到 "12" 的月份。
  • (?:0[1-9]|[12]\d|3[01]):非捕获性分组,匹配 "01" 到 "09"、"10" 到 "29" 或 "30" 到 "31" 的日期。
  • \d{3}:匹配三位数字,通常用于表示个人识别信息的一部分。
  • [\dX]:匹配一个数字或大写字母 "X",通常用于表示校验位。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题