如何组合angularjs表单字段的这两个正则表达式
d{4}([- ]*)d{6,7}
或
[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">
为了获得两个正则表达式的替代项,您需要将它们都封装在括号中:
<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">
问题是angular使用单管符号作为过滤器,并且不允许在模板中使用它。通常的情况是二进制OR,但您的情况可能也有问题。。。
因此,您可以在控制器上创建一个变量,该变量保存您的模式并使用模板中的变量:
<input type="text" ng-pattern="myctrl.pattern" class="form-control" ng-model="formData.username" required placeholder="username">