我正在尝试编写一个正则表达式,其中只允许从1到99的值。
有效值:
1
01
2
02
3
03
...
19
20
21
...
98
99
其他所有内容都必须抛出错误:
00
0
-1
1.0
1.
100
我目前有这个:
^[1-9]([0-9]+$)
这不起作用。它只接受10及以上的值。
答案 0 :(得分:4)
这应该做:
^(0[1-9]|[1-9][0-9]?)$
答案 1 :(得分:2)
^(0?[1-9]|[1-9][0-9])$
第一部分涵盖1到9和0x
第二部分适用于10到99之间的所有内容
答案 2 :(得分:0)
这项工作:^(([0-9][1-9])|([1-9][0-9])|[1-9])$
答案 3 :(得分:0)
试试这个正则表达式:
^([1-9]|[1-9][0-9]|0[1-9])$/mg
在这里演示Regex101
它使用等同于|
的{{1}}运算符。
基本上这个正则表达式说:
1到9之间的数字是多少?
OR
第一个数字是介于1和9之间,第二个数字介于0之间 和9?
OR
数字是否以0开头并以1到9之间的数字结尾?
结尾OR
上的标记只是让它检查演示的每一行,您可能想要更改或删除它们。
编辑:无论出于何种原因,我都没有看到Kuba的回答。他实际上更干净,但是如果你想要解释的话,其工作方式大致相同。
答案 4 :(得分:0)
/^(0?[1-9]|[1-9][0-9])$/gm