Mr.*_*guy 9 html javascript regex angularjs
我想在 an 上设置一些验证<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
Run Code Online (Sandbox Code Playgroud)
2) ^[1-9][0-9]?$|^31$
--> Does match 1 but not 01
--> Does match 32 where it shouldn't
Run Code Online (Sandbox Code Playgroud)
为了测试,我使用https://regex101.com/tests。
我在尝试中遗漏了什么?
Seb*_*sne 10
如果您的目标是匹配 0 到 100,这里有一种方法,基于之前的解决方案。
\b(0?[1-9]|[1-9][0-9]|100)\b
Run Code Online (Sandbox Code Playgroud)
基本上,那场比赛有3个部分......
0?[1-9] 通过提及可能存在 0 来解决数字 1 到 9
[1-9][0-9] 涵盖数字 10 到 99,[1-9] 代表十位
100 覆盖 100
如果您需要将较高边界设置为 42,则表达式的中间部分将变为[1-3][0-9](覆盖 10 到 39),最后一部分将变为4[0-2](覆盖 40 到 42),如下所示:
\b(0?[1-9]|[1-3][0-9]|4[0-2])\b
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19132 次 |
| 最近记录: |