我想在<input>
上设置一些验证,以防止用户输入错误的字符。为此,我正在使用ng-pattern
。当前,它禁止用户输入错误的字符,但是我也注意到这不是预期的行为,因此我也计划创建一个指令。
我正在使用
AngularJS:1.6.1
正则表达式应与相匹配
以下是正则表达式字符串的要求:
注意:
“x”是变量,可以是0到100之间的任何数字。
“x”位置的数字是可变的,因此,如果有可能创建一个易于更改的字符串,将不胜感激!
我尝试了什么
我在以下地方尝试过一些正则表达式字符串:
1)
^0*([0-9]\d{1,2})$
--> Does match 01 but not 1
--> Does match 32 where it shouldn't
2)
^[1-9][0-9]?$|^31$
--> Does match 1 but not 01
--> Does match 32 where it shouldn't
为了测试,我使用https://regex101.com/tests。
我的尝试中缺少什么?
最佳答案
如果您的目标是将0匹配到100,则这是基于先前解决方案的一种方法。
\b(0?[1-9]|[1-9][0-9]|100)\b
基本上,有3个要匹配的部分...
0?[1-9]
提及数字1到9,并提到存在0可能[1-9][0-9]
覆盖数字10到99,[1-9]代表十100
涵盖100个Here's an example of it
您需要将较高的边界设置为42时,表达式的中间部分将变为
[1-3][0-9]
(覆盖10到39),最后一部分将变为4[0-2]
(覆盖40到42),如下所示:\b(0?[1-9]|[1-3][0-9]|4[0-2])\b
关于javascript - 正则表达式匹配数在1到31之间,带或不带前导0,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41635612/