将两个正则表达式组合成angularjs表单字段

时间:2016-05-07 12:24:47

标签: javascript angularjs regex

如何将这两个正则表达式组合成angularjs表单字段

\d{4}([- ]*)\d{6,7} 

OR

[a-zA-Z0-9]{4,12}

我试过这个

<input type="text" pattern="\d{4}([- ]*)\d{6,7} | [a-zA-Z0-9]{4,12}" class="form-control" ng-model="formData.username" required placeholder="username">

2 个答案:

答案 0 :(得分:1)

为了获得2个正则表达式的替代方法,您需要将它们包装在括号中:

<input type="text" pattern="(\d{4}([- ]*)\d{6,7})|([a-zA-Z0-9]{4,12})" class="form-control" ng-model="formData.username" required placeholder="username">

答案 1 :(得分:0)

问题是angular使用单个管道符号作为过滤器,并且不允许在模板中使用它。通常情况下是二元OR,但你的情况也可能有问题......

所以你可以做的是在控制器上创建一个变量来保存你的模式并使用模板中的变量:

<input type="text" ng-pattern="myctrl.pattern" class="form-control" ng-model="formData.username" required placeholder="username">