使用正则表达式匹配任何大于 15 的数字

To match any number greater than 15 using regexp

我尝试使用以下正则表达式匹配任何大于 15 的数字:

0*[1-9][6-9][0-9]*

但我只能匹配 2 位数字,例如。我可以成功取消匹配 1213(小于 15),而我无法匹配 105124 等。

谁能帮我解决这个问题。

任何大于 15 的数都是

  • 任何有 3 位或更多位且可能有前导 0 的数字

  • 第一个数字在字符 class [2-9]

  • 中的任何 2 位数字
  • 第一个数字为 1 第二个数字为字符 class [6-9]

  • 的任何数字

根据这三个规则我们可以构建正则表达式,假设我们匹配的内容只包含数字

/^0*(?:[1-9][0-9]{2,}|[2-9][0-9]|1[6-9])$/

如果您不能使用扩展的正则表达式,那么下面的方法应该可行

/^0*[1-9][0-9][0-9][0-9]*|0*[2-9][0-9]|0*1[6-9]$/