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



如何组合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">

最新更新