AngularJS 1.x: 如何在 ng-pattern 中显示自定义消息?

AngularJS 1.x: How to show custom message in ng-pattern?

我正在创建一个表单并尝试输入以下密码验证:

最少 8 个,至少 1 个大写字母、1 个小写字母、1 个数字和 1 个特殊字符:

使用以下正则表达式:

"/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,}/"

代码:

Password:<input type="text" name="pass" ng-model="password" ng-pattern="/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.{8,}$)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]/" required />
<span style="color:Red" ng-show="personForm.pass.$error.required"> Required! </span>
<span style="color:Red" ng-show="personForm.pass.$dirty&&personForm.pass.$error.pattern">Please Enter Valid Pass</span>

现在,我要做的是在用户填写密码时向他显示动态消息。例如。如果他填了大写、小写、特殊字符但没有填数字,我想显示那个"Password should contain number"。 是否可以不点击提交? 还是我应该通过点击按钮来完成?

我认为你不能这样做,给你的密码组合一个小消息,并将提交按钮置于禁用状态,直到你的密码无效。

正确答案是使用 ngMessages。请参阅 here(从 1.3 版开始,我意识到对于这个 post 来说可能太新了)。