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

combine two regex for angularjs form field

本文关键字:两个 正则表达式 angularjs 表单 字段 组合      更新时间:2023-09-26

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