gpt4 book ai didi

javascript - 是否可以简化此密码正则表达式?

转载 作者:行者123 更新时间:2023-11-30 07:58:53 26 4
gpt4 key购买 nike

我刚刚在这里回答了另一个正则表达式问题。

jQuery method to validate a password with specific rules

目标是创建一个采用以下内容的正则表达式

  • 1个或多个大写字符
  • 1个或多个小写字符
  • 1 位数字或特殊字符 - 即 !@#$%^&*()-=
  • 长度必须至少为 7 个字符

我找到了一个针对特殊字符的绝妙解决方案,其中 \W 匹配非单词字符。那应该匹配特殊字符。

但我想知道这个解决方案是否可以干涸到不需要多个条件。我原来的解决方案是在一行中

$.validator.addMethod("pwcheck", function(value) {
return /[A-Z]+[a-z]+[\d\W]+/.test(value)
});

这符合前三个条件,但有一个问题。它只匹配那个确切的顺序。这意味着小写字母必须跟在大写字母之后,依此类推。虽然这样的例子通过了

AGHjfd8437

其他人是这样失败的

agTF8djRd4

我必须修改我的解决方案才能通过这样的测试。这是我想出的。

$.validator.addMethod("pwcheck", function(value) {
return /[A-Z]+/.test(value) && /[a-z]+/.test(value) &&
/[\d\W]+/.test(value) && /\S{7,}/.test(value);
});

但我想知道是否可以将其合并为一个正则表达式。如果是这样,它会比第二个看起来更干净吗?

最佳答案

您可以使用正面前瞻(?=..):

/^(?=.*[A-Z])(?=.*[a-z])(?=.*[\d\W]).{7,}$/

每个正向前瞻都将确保存在于您指定字符的任何位置。最后的 .{7,} 将匹配至少七个字符。从开始 ^ 到结束 $

希望对您有所帮助。

关于javascript - 是否可以简化此密码正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33043918/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com