shr*_*nsh 2 javascript regex angularjs angularjs-ng-pattern
嗨,我对正则表达式了解不多。但是我在使用 angularJs 的表单验证中需要它。
下面是要求
输入框应仅在以下任一情况下接受
(1) 前 2 个字母 alpha + 6 个数字
或者
(2) 8 个数字
以下是一些正确的输入:-
(1)SH123456 (2)12345678 (3)sd456565
我试过data-ng-pattern="/(^([a-zA-Z]){2}([0-9]){6})|([0-9]*)?$/",它在上述两种情况下都可以正常工作,但它仍然接受像 S2D3E4F5 这样的字符串,也可能是许多其他组合。
我做错了什么我无法找到它。
任何帮助都是可观的!!!
谢谢
在您的正则表达式中,两个替代分支分别锚定:
(^([a-zA-Z]){2}([0-9]){6}) - 字符串开头的 2 个字母和 6 个数字| - 或者([0-9]*)?$ - 字符串末尾可选的零个或多个数字您需要调整组的边界:
data-ng-pattern="/^([a-zA-Z]{2}[0-9]{6}|[0-9]{8})?$/"
^ ^^^^
Run Code Online (Sandbox Code Playgroud)
请参阅正则表达式演示。
现在,模式将匹配:
^ - 字符串的开始( - 分组开始:
[a-zA-Z]{2}[0-9]{6} - 2 个字母和 6 位数字| - 或者[0-9]{8} - 8 位数字)?- 分组和?量词的结尾使其匹配 1 次或 0 次(可选)$ - 字符串的结尾。| 归档时间: |
|
| 查看次数: |
17147 次 |
| 最近记录: |