4

我正在尝试编写一个简单的正则表达式,但我不知道为什么它不起作用。

用户输入 2 位数字,如01, 09, 23, 55, 直到82。之后82系统会拒绝。

这是我的正则表达式,2 位数字必须小于 82。

0[1-9]|[1-8][0-9]|8[0-2]
4

3 回答 3

7

您应该有[1-7]10-79 的范围,而不是[1-8]. 不要忘记^and$来指定字符串的开始和结束:

^(0[1-9]|[1-7]\d|8[0-2])$
于 2012-05-31T13:57:28.730 回答
4

为什么不转换为整数然后只测试x < 82

于 2012-05-31T13:57:34.270 回答
1

你的第二部分是错误的。它将从 10 匹配到 89,而您希望它从 10 匹配到 79,并让第三部分处理 80 到 82。

0[1-9]|[1-7][0-9]|8[0-2]
于 2012-05-31T13:57:33.320 回答