Javascript 密码模式的正则表达式
我想要下面的组合正则表达式 密码必须至少包含8个字符。至少有一个大写字母 字母,至少一个小写字母和至少一个数字 数字它可以包含特殊字符,但不能包含空格 目前我正在使用下面的正则表达式Javascript 密码模式的正则表达式,javascript,regex,Javascript,Regex,我想要下面的组合正则表达式 密码必须至少包含8个字符。至少有一个大写字母 字母,至少一个小写字母和至少一个数字 数字它可以包含特殊字符,但不能包含空格 目前我正在使用下面的正则表达式 /^.*((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(.*[!@#$%^&*()_+=])).*$/i 我想密码是在任何顺序。当前表达式允许我按顺序输入密码 提前感谢删除i修饰符和*,它存在于lookaheads之前,您还需要在character类中添加A-Za-z\d,以便它也能匹配字
/^.*((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(.*[!@#$%^&*()_+=])).*$/i
我想密码是在任何顺序。当前表达式允许我按顺序输入密码
提前感谢删除
i
修饰符和*
,它存在于lookaheads之前,您还需要在character类中添加A-Za-z\d
,以便它也能匹配字母和数字
/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[A-Za-z\d!@#$%^&*()_+=]{8,}$/
如果您使用i
修饰符,它将使(?=.*[A-Z])
部分变得毫无意义
这是一个模式密码示例
((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})
按照示例的说明进行操作:
( # Start of group
(?=.*\d) # must contains one digit from 0-9
(?=.*[a-z]) # must contains one lowercase characters
(?=.*[A-Z]) # must contains one uppercase characters
(?=.*[@#$%]) # must contains one special symbols in the list "@#$%"
. # match anything with previous condition checking
{6,20} # length at least 6 characters and maximum of 20
) #
这可能会对您有所帮助吗?您可以将其简化为使用Javascript和一些简单易懂的正则表达式:
function validPassword(password) {
return password.length >= 8 // Length
&& !~password.indexOf(" ") // No spaces
&& password.match(/[A-Z]/) != null // One uppercase
&& password.match(/[a-z]/) != null // One lowercase
&& password.match(/[0-9]/) != null; // One numerical digit
}
就我个人而言,我读起来比读
/^.*(?=.*\d)(?=.[a-z])(?=.[a-z])(.[!@$%^&*())。$/I
这是您可以使用的正则表达式:
/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])\S{8,}$/
看
说明:
-要求字符串中包含数字(?=.*\d)
-需要小写字母(?=.[a-z])
-需要大写字母(?=.[A-Z])
-字符串应包含除空格以外的任何字符,至少出现8次\S{8,}
^
和$
,它们是不可或缺的。并且没有i
修饰符,否则大写/小写的区别将不起作用
作为替代方案,要稍微优化正则表达式,我们可以使用:
我想让特殊字符成为可选的!!哎,这个,;ld将特殊字符作为可选字符。请注意,Avinash建议的正则表达式不允许使用
[
或“
和许多其他特殊符号。不确定这是您需要的。为什么不使用空格?您应该只强制使用最小14个字符,最大50+或哈希使用的字符(如bcrypt).每个人都应该这样做。我在工作中维护了一个庞大的语法检查器脚本,并最终将其分解为几十个简单的正则表达式,而不是一个不可能理解的正则表达式。
/^(?=\D*\d)(?=[^a-z]*[a-z])(?=[^A-Z]*[A-Z])\S{8,}$/