0

我使用以下规则创建了一个用于密码字段验证检查的正则表达式:

  1. 至少一个小写字符
  2. 至少一个大写字符
  3. 至少有一个特殊的字符
  4. 至少一个数字

正则表达式:/^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$&*])(?=.*[0-9]).{8,}$/

任何帮助,将不胜感激。

4

2 回答 2

1

最简单的解决方法是根本不使用前瞻。在您的情况下,由于所有前瞻都从字符串的开头开始(由于^),因此相当于分别检查每个前瞻。您可以进一步删除.*并进行未锚定的匹配。

if (/[a-z]/.test(str) &&
    /[A-Z]/.test(str) &&
    /[!@#$&*]/.test(str) &&
    /[0-9]/.test(str) &&
    str.length() >= 8) {

    // All conditions met
}
于 2013-03-13T09:33:40.727 回答
0

应用Change Password Control RegEx中建议的相同概念,仅在 IE 7 中进行奇怪的验证,您将得到以下正则表达式:

/^(?=.{8,}$)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$&*])(?=.*[0-9]).*/

我没有IE7,所以我无法测试它。

于 2013-03-13T09:31:56.593 回答