我需要使用模式匹配来验证密码字段。我使用了ng-pattern。但它运作不正常。
我在这里给出的模式是,文本应至少包含8个带符号,字母和数字的字符。但是当我输入任何字符串时,模式匹配变为真。
请参阅以下代码
<body ng-controller="MainCtrl">
<form name="form">
<input type="text" name="password" ng-model="user.password" ng-pattern="/(^.*(?=.{8,})(?=.*\d)(?=.*[a-z])(?=.*[\W]).*$)/">
<input type="submit">
{{form.password.$error}}
</form>
</body>
我在这里缺少什么?
答案 0 :(得分:1)
这似乎有效。如果字段无效,则{{form.password.$error}}
表达式变为true
。空字段不得到验证。
因此输入aaaaa
(5个字母)会使该字段无效。由于长度的原因,添加1@
(数字+符号)仍然无效。添加任何内容都会使其有效(&gt; =带字母,数字,符号的8个字符→显示屏显示false
)。