如何编写接受介于1到25000之间的数字的正则表达式>
我这样尝试过^([1-2]?[1-4]?[0-9]{0,3}|25000)$
答案 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
。
答案 2 :(得分:-3)
尝试使用锚点:
/^[1-9]$/
^行或字符串的开始
[1-9] 1到9之间的数字
$行尾/字符串
或者您也可以尝试条件语句:
如果(x> 0 && x <= 25000)