ng-pattern无法正常工作,匹配每个字符串

时间:2013-11-26 11:43:46

标签: regex angularjs

我需要使用模式匹配来验证密码字段。我使用了ng-pattern。但它运作不正常。

请参阅this pluker link

我在这里给出的模式是,文本应至少包含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>

我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

这似乎有效。如果字段无效,则{{form.password.$error}}表达式变为true。空字段得到验证。

因此输入aaaaa(5个字母)会使该字段无效。由于长度的原因,添加1@(数字+符号)仍然无效。添加任何内容都会使其有效(&gt; =带字母,数字,符号的8个字符→显示屏显示false)。