如何编写接受介于1到25000之间的数字的正则表达式

时间:2018-07-22 05:42:24

标签: regex

如何编写接受介于1到25000之间的数字的正则表达式>

我这样尝试过^([1-2]?[1-4]?[0-9]{0,3}|25000)$

3 个答案:

答案 0 :(得分:1)

这里是一个正则表达式,它将只接受数字在1到25000之间的字符串。
不用继续零。

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

基本上将其分为4个范围

[1-9]\d{0,3} : 1 to 9999  
1\d{4}       : 10000 to 19999  
2[0-4]\d{3}  : 20000 to 24999  
25000        : 25000  

可以找到regex101测试here

要找到这些数字作为字符串的一部分,可以用字边界^替换开头$和结尾\b

顺便说一句,在大多数编程语言中,仅检查它的数字是否在可接受范围内通常更简单。即使在HTML中,数字也有input type,您可以在其中设置最小值和最大值。

答案 1 :(得分:0)

尝试

^(?!0$)((1\d|2[0-4]|\d)?\d{1,3}|25000)$

第一个否定的前瞻将拒绝仅0的值。

(1\d|2[1-4]|\d)?表示以5位数开头的数字2要求其后跟0-4

https://regex101.com/r/1DgbBM/4

答案 2 :(得分:-3)

尝试使用锚点:

/^[1-9]$/

^行或字符串的开始
[1-9] 1到9之间的数字
$行尾/字符串

或者您也可以尝试条件语句:

如果(x> 0 && x <= 25000)