jquery⾥⽤正则来验证密码,必须包含⼤⼩写字母,数字及特
殊符号,或最少包含两种
⼀:要求⽤正则来验证⽤户输⼊的密码,⾄少包含⼤⼩字字母,数字和特殊符号中两种,简单的说,就是验证⽤户输⼊的密码不能太简单。
乍⼀想,这种正则好像不太⽅便下⼿写,⾄少以前站长在验证⽤户输⼊的密码格式时,都是分步来写的,⽐如:
if(/[a-z]/g.test(v)){
alert("不能纯为⼩写字母");
return false;
}else if(/[A-Z]/g.test(v)){
alert("不能纯为⼤写字母");
return false;
}else if(/[0-9]/g.test(v)){
alert("不能纯为数字");
return false;
}else if(/[^0-9a-zA-Z]/g.test(v)){
alert("不能纯为⾮字母和数字的特殊符号");
return false;
}
现在技术⽐以前好了那么“⼀丢丢”,就在想,能不能⽤⼀句正则来实现呢?当然是可以的,下⾯是具体的正则:
var v=$("#text").val();
reg=/^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$).{6,}$/;
st(v));
上⾯的正则表达的意思是,不能为纯数字,不能为纯⼩写字母,不能为纯⼤写字母,不能为纯特殊符号,⾄少六位。
不要看着有点复杂,其实很简单的,站长来给⼤家拆开分析⼀下:
(?!) 这是正则⾥的⼀个“语法结构”,表⽰“规定后⾯不是”的意思,看这篇《jquery正则中问号的三种[说四种那是忽悠⼈]⽤法详解及在线实例演⽰》
了解了上⾯这⼀句,那么上⾯的正则就好理解了:
(?![0-9]+$) 表⽰后⾯不能为纯数字
(?![a-z]+$) 表⽰后⾯不能为纯⼩写字母
(?![A-Z]+$) 表⽰后⾯不能为纯⼤写字母
(?!([^(0-9a-zA-Z)])+$) 表⽰后⾯不能为除数字和字母外的纯特殊符号
^ 这个符号单独⽤表⽰“开头”,⽤在中括号的开头,表⽰“⾮”;
.{6,} 表⽰⾄少6位的任意字符
$ 表⽰“结尾”
⼆:另外还有⼀种情况,那就是,有时我们需要我们的密码必须为“字母+数字+特殊符号”,那么我们要如何写呢?jquery在项目里是干啥的
按照上⾯的⽅法,我们可能会这样来写:
(?![0-9a-z]+$) 不能为⼩写字母与数字
(?![0-9A-Z]+$) 不能为⼤写字母与数字
(?![0-9\W]+$) 不能为数字及特殊符号
(?![a-z\W]+$) 不能为⼩写字母及特殊符号
(?![A-Z\W]+$) 不能为⼤写字母及特殊符号
(?![0-9a-zA-Z]+$) 不能为⼤写,⼩写字母与数字
把这三种情况也加上去后,就只剩下“必须包含数字、⼤⼩写字母和特殊符号”这⼀种情况了,但是我们也得出了⼀个超长的正则,这⾥就不写了!
那么有没有简单的⽅法呢?当然是有的:
var v=$("#text").val();
reg=/^(?=.*[a-zA-Z])(?=.*[1-9])(?=.*[\W]).{6,}$/;
st(v));
(?=)这个语法结构在正则⾥表⽰“设定后⾯是”的意思。
(?=.*[a-zA-Z]) 这句的意思就是后⾯必须有⼀位⼤写或⼩写字母(?=.*[1-9]) 这句的意思是后⾯必须有⼀位数字
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论