我有这个代码,它只接受 6 位数字:
<input
ng-pattern="{{widget.regex}}"
name="{{widget.id}}">
{{widget.regex}}
<span ng-if="(myForm[item.id].$touched === true && myForm[item.id].$valid === false)" class="help-block">
<div ng-message="pattern">Enter 6 digit ID</div>
</span>
并且正则表达式值是从 JSON 文件中设置的,如下所示:
{
"items": [
{
"id": "customerID",
"label": "Enter ID",
"required": "yes",
"regex": "/^[0-9]{6,6}$/i"
},
{
"id": "customerEmail",
"label": "Email",
"required": "yes"
}
]
},
这是输出:
现在的问题是,如果我在 ID 字段中键入 6 位数字,错误消息不会消失。我输入的任何数字都不会使其工作。但是,如果我将正则表达式硬编码为这样的ng-pattern
属性:
<input
ng-pattern="/^[0-9]{6,6}$/i"
name="{{widget.id}}">
{{widget.regex}}
<span ng-if="(myForm[item.id].$touched === true && myForm[item.id].$valid === false)" class="help-block">
<div ng-message="pattern">Enter 6 digit ID</div>
</span>
它会起作用的!错误消息将消失。我还像这样从控制器测试了它:
vm.regex = new RegExp('/^[0-9]{6,6}$/i');
它也不起作用。有谁知道是什么问题?请提前帮助和感谢。