我正在寻找一个RegEx来验证一个从1到1,000的数字,逗号只包含在1000和任何其他输入中,如0,2000,100.9,所以它应该抛出错误。
我尝试使用:
Regex = "[0-9]+(,[0-9]+)"
但100
,200
答案 0 :(得分:3)
为了匹配整个,整数从1到1,000,你可以使用
^(?:1,000|[1-9][0-9]{0,2})$
或者,要匹配较大字符串(带有字边界\b
)内的单独数字:
\b(?:1,000|[1-9][0-9]{0,2})\b
如果数字可能出现在字母,其他数字或_
:
(?:1,000|[1-9][0-9]{0,2})
请参阅demo
锚点确保数字等于整个输入字符串。
正则表达式匹配......
^
- 字符串开头(?:1,000|[1-9][0-9]{0,2})
- 2个替代方案:1,000
或[1-9][0-9]{0,2}
:
[1-9]
- 1到9之间的数字[0-9]{0,2}
- 从0到9的0或2位数字$
- 字符串结尾