密码必须含有一个小写字母一个大写字谜一个特殊符号,长度不小于8,并且不能含有空格。
var r=/^((?=.*[a-z])(?=.*[A-Z])(?=.*\W).\S{7,})$/
var t1="aaaaaaaaa";
var t2="AAAAAAAAAAAAAA" -->f
var t3="AAAaaaaaAA" -->f
var t4="dddsdsAA@" --> true
var t5="\;234sadAS.," -->true
var t6="|dsfsd dsf ASA@"
console.log(r.test(t6)) --->false
//说明下划线不属于特殊字符。 正则中/w 指的是[a-zA-Z_], /W指的是[^a-zA-Z_]
最终项目中使用:
请输入8-15位密码,必须包含大写字母、小写字母和特殊字符:
/^(?!\s)((?=.*[a-zA-Z])(?=.*[a-z])(?=.*[A-Z])(?=.*[\W_]).\S{7,14})$/
后来改成把特殊字符改成数字了:
/^(?!\s)((?=.*[a-zA-Z])(?=.*[a-z])(?=.*[A-Z])(?=.*[\d]).\S{7,})$/
最后又改成数字或者特殊字符了TMD
/^(?!\s)((?=.*[a-zA-Z])(?=.*[a-z])(?=.*[A-Z])(?=.*[\d|\W_]).\S{7,})$/
很好理解,一个括号一个条件,就是你要是4选1,那就麻烦了,得写多长,或者用js一个个的截取验证,也没那种瘠薄客户这样要求吧,现在讲究体验都很简单,除非特别的公司要求
参考链接: