正则表达式,数字低于20k

时间:2016-03-03 16:34:07

标签: regex vwo

我正在寻找一个正则表达式来验证数字是否低于20 000。 我找不到合适的解决方案,我到目前为止:

(^([1-9]([0-9]{0,3})|20000)$)

哪个工作得很好但是一旦达到10 000就没有匹配。所以我与9 999 - 20 000有差距。

我做错了什么?我没有在这些情况下使用正则表达式,但第3方程序需要这样的正则表达式。

谢谢!

3 个答案:

答案 0 :(得分:2)

([1-9]([0-9]{0,3})部分旨在匹配2000下方所有严格的数字,但您将其定义为:"数字1到9后跟0到3数字&#34 ;.现在10 000是一个后跟四个零的零件:您可以将零件重写为:

[1-9][0-9]{3}|1[0-9]{4}

完整的正则表达式现在是:

^[1-9][0-9]{3}|1[0-9]{4}|20000$

答案 1 :(得分:2)

我有这个:

^([01]?\d{0,4}|20000)$

匹配0到20 000之间的任何数字,并允许用户使用前导0 Live Demo

的数字

答案 2 :(得分:2)

您的正则表达式 - ^([1-9]([0-9]{0,3})|20000)$ - 匹配1999920000之间的数字。

您可以使用

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

请参阅demo

故障:

  • ^ - 匹配字符串的开头
  • ([1-9]\d{0,3}|1\d{4}|20000) - 匹配其中一个替代方案:
    • [1-9]\d{0,3} - 19后跟0到3任意数字(从19999
    • 1\d{4} - 1后跟任意4位数(以匹配10000 - 19999
    • 20000 - 字面意思20000
  • $ - 匹配字符串
  • 的结尾