数字内的数字的正则表达式模式

时间:2014-07-27 03:11:58

标签: regex

有谁能想到更好的方法来写这个?它有效,但有点难看。

输入数据如下所示:125100001

前两个数字是年份,接下来的两个是周数,最后5个是序列号。我想验证angular input[number] pattern选项的周数不超过52。基本上只是为了利用$ error字段:)

所以这是:

^\d\d(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-2]){1}\d{5}$

2 个答案:

答案 0 :(得分:1)

使用此:

^(\d{2})([0-4][1-9]|[1-5]0|5[12])(\d{5})$

注释

  • 第一组括号(0[1-9]|1[0-2])验证月份:01-12
  • 第二组括号([0-4][1-9]|[1-5]0|5[12])验证了一周:01-52
  • 如果您愿意,可以使用组1,2和2
  • 检索每个组件

答案 1 :(得分:0)

仅适用于本周部分:

[0-4]\d|5[0-2]

所以整个正则表达式将是:

^\d\d([0-4]\d|5[0-2])\d{5}$