Javascript 正则表达式密码验证angularjs
我是新手。我已经创建了一个登录屏幕。我需要验证我的密码。它应该包含一个来自Javascript 正则表达式密码验证angularjs,javascript,angularjs,regex,Javascript,Angularjs,Regex,我是新手。我已经创建了一个登录屏幕。我需要验证我的密码。它应该包含一个来自-'$@!%*#?&'的特殊字符和至少一个字母和数字。到目前为止,它接受所有特殊字符,没有任何限制。我有以下代码 if (vm.newpassword_details.password.search("^(?=.*?[A-Za-z])(?=.*?[0-9])(?=.*?[$@£!%*#?&]).{8,}$")) { var msg = "Password should contain one special c
-'$@!%*#?&'的特殊字符代码>和至少一个字母和数字。到目前为止,它接受所有特殊字符,没有任何限制。我有以下代码
if (vm.newpassword_details.password.search("^(?=.*?[A-Za-z])(?=.*?[0-9])(?=.*?[$@£!%*#?&]).{8,}$")) {
var msg = "Password should contain one special character from -'$@£!%*#?&' and at least one letter and number";
alert(msg);
}
请注意,您当前的正则表达式施加了4种类型的限制:
至少一个ASCII字母((?=.*A-Za-z])
)
至少有一位数字((?=.[0-9])
)
集合中至少有一个特定字符((?=.*?[$@!%*?&])
)
整个字符串应至少有8个字符({8,}
)
{8,}
中的
可以匹配除换行符以外的任何字符
如果您计划限制
,只允许用户从您的集合中键入字符,请从它们创建一个超集,并将其与RegExp\test
一起使用:
if (!/^(?=.*?[A-Za-z])(?=.*?[0-9])(?=.*?[$@£!%*#?&])[A-Za-z0-9$@£!%*#?&]{8,}$/.test(vm.newpassword_details.password)) { /* Error ! */ }
请参见您的意思是要限制用户可用于密码的字符数吗?这不是最佳做法。您可以使用/^(?=.[A-Za-z])(?=.[0-9])(?=.[$@!%*.?&])[A-Za-z0-9$@!%*.*.?&]{8,}$/
regex来实现它。