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');
それも機能しません。誰が問題が何であるか知っていますか?助けてください、事前に感謝します。