我正在寻找一个正则表达式来验证数字是否低于20 000。 我找不到合适的解决方案,我到目前为止:
(^([1-9]([0-9]{0,3})|20000)$)
哪个工作得很好但是一旦达到10 000就没有匹配。所以我与9 999 - 20 000有差距。
我做错了什么?我没有在这些情况下使用正则表达式,但第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)
答案 2 :(得分:2)
您的正则表达式 - ^([1-9]([0-9]{0,3})|20000)$
- 匹配1
到9999
和20000
之间的数字。
您可以使用
^([1-9]\d{0,3}|1\d{4}|20000)$
请参阅demo
故障:
^
- 匹配字符串的开头([1-9]\d{0,3}|1\d{4}|20000)
- 匹配其中一个替代方案:
[1-9]\d{0,3}
- 1
至9
后跟0到3任意数字(从1
到9999
)1\d{4}
- 1
后跟任意4位数(以匹配10000 - 19999
)20000
- 字面意思20000
$
- 匹配字符串