我需要将模式匹配为字符串'abcd'
,后跟冒号(:)和任意数量的整数。此模式不能重复。
有效模式->
- abcd:23415
- abcd:23
无效模式->
- asda:4535
- abcd
- abcdabcd:324
- abcd:234abcd234
- abcd:234:abcd:234
我试了如下:
((((abcd){0,1}):([0-9].+)){0,1})[^:]
它没有工作。我要把这个用n字型传递下去。考虑到ng-pattern在默认情况下会追加^并在末尾添加$,请建议正确的模式
您的regex包含.+
子模式,允许在:
和非:
之间除换行符以外的任何1个或多个符号。看来这不是你需要的。
请注意,您实际上可以传递一个正则表达式,而不仅仅是一个字符串,给ng-pattern
。
所以,如果你的abcd
在开头,然后:
后面跟着一个或多个数字,使用
ng-pattern="/^abcd:d+$/"
参见regex demo
如果末尾的数字是可选的,则尝试/^abcd:d*$/
作为模式。
Try /^abcd:d+$/
如果最后的数字是必填的
一些基本细节:
^
测试字符串的起始
abcd:
精确匹配静态字符串片段
d
匹配数字
*
出现0次或0次以上
+
出现一次或多次
$
测试字符串结束