首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IC号码验证所需的Regex

IC号码验证所需的Regex
EN

Stack Overflow用户
提问于 2018-12-07 04:26:54
回答 3查看 1K关注 0票数 0

我需要验证一个12位数。其中,

  • 第1位和第2位数=小于100位数
  • 第3位和第4位数=1至12之间
  • 第5位和第6位数=1至31之间

剩下的6个数字可以是0到9之间的任意数字。

示例190131958103

有人能给我满足上述验证的正则表达式吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-12-07 04:46:16

根据定义,2位数值小于100 (最大值为99),因此您不需要检查这个值。此正则表达式将满足您的其他需求:

代码语言:javascript
复制
^\d{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])\d{6}$

它以任意两个数字开始;然后是01-0910-12;后面是01-0910-1920-2930-31中的一个;后面是6个数字。

基于regex101的演示

更新

如果您不能在您的模式中使用\d,请用[0-9]替换它。

代码语言:javascript
复制
^[0-9]{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])[0-9]{6}$
票数 2
EN

Stack Overflow用户

发布于 2018-12-07 04:47:20

你可以试试这个伙伴

代码语言:javascript
复制
^\d{2}(?:0[1-9]|1[0-2])(?:[0-1]|[1-2][0-9]|[3][0-1])\d{6}$

万一你不想使用\d

代码语言:javascript
复制
 ^[0-9]{2}(?:0[1-9]|1[-2])(?:[0-1]|[1-2][0-9]|[3][0-1])[0-9]{6}$

解释

  • ^ -字符串的开始。
  • \d{2} -匹配任何两位数字。
  • (?:0[1-9]|1[-2]) -非捕获-组。匹配1到12之间的任何数字。
  • (?:[0-1]|[1-2][0-9]|[3][0-1]) -非捕获-组。匹配1到31之间的任何数字。
  • \d{6} -匹配任何六位数字。
  • $ -字符串的末端。

P.S -我建议使用非捕捉组。因为您注意到在regex.This中再次使用组在任何地方都会提高性能。

演示

票数 1
EN

Stack Overflow用户

发布于 2022-11-03 01:08:44

松散检查

您可以使用以下方式检查马来西亚的IC:

代码语言:javascript
复制
^\d{2}(?:0[1-9]|1[012])(?:0[1-9]|[12][0-9]|3[01])\d{6}$

这样做的目的是:

  1. ^\d{2} -字符串的开头是任意2位数.
  2. (?:0[1-9]|1[012]) -匹配01到12。
  3. (?:0[1-9]|[12][0-9]|3[01]) -匹配01到31。
  4. \d{6}$ -字符串的末尾是任意6位数.

严格检查

如果要确保日期是有效的,例如,检查哪个月有28、29、30或31天,可以使用以下方法:

代码语言:javascript
复制
^\d{2}(?:(?:0[1-9]|1[0-2])(?:0[1-9]|1[0-9]|2[0-9])|(?:01|03|05|07|08|10|12)(?:3[01])|(?:04|06|09|11)(?:30))\d{6}$

这样做的目的是:

  1. ^\d{2} -字符串的开头是任意2位数.
  2. (?:0[1-9]|1[0-2])(?:0[1-9]|1[0-9]|2[0-9]) -在01到12月份,在01到29之间。
  3. (?:01|03|05|07|08|10|12)(?:3[01]) -在01,03,05,07,08,10和12个月,30到31比赛。
  4. (?:04|06|09|11)(?:30) -在04,06,09,11月份,只有30场比赛。
  5. \d{6}$ -字符串的末尾是任意6位数.

演示

注意事项

正如你所知道的,这没有考虑到闰年和二月份有多少天。

如果您需要检查闰年,我建议您不要为此使用regex,因为它太复杂了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53663245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档