1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > jquery里用正则来验证密码 必须包含大小写字母 数字及特殊符号 或最少包含两种

jquery里用正则来验证密码 必须包含大小写字母 数字及特殊符号 或最少包含两种

时间:2024-01-25 04:10:01

相关推荐

jquery里用正则来验证密码 必须包含大小写字母 数字及特殊符号 或最少包含两种

一:要求用正则来验证用户输入的密码,至少包含大小字字母,数字和特殊符号中两种,简单的说,就是验证用户输入的密码不能太简单。

乍一想,这种正则好像不太方便下手写,至少以前站长在验证用户输入的密码格式时,都是分步来写的,比如:

if(/[a-z]/g.test(v)){

alert("不能纯为小写字母");

returnfalse;

}elseif(/[A-Z]/g.test(v)){

alert("不能纯为大写字母");

returnfalse;

}elseif(/[0-9]/g.test(v)){

alert("不能纯为数字");

returnfalse;

}elseif(/[^0-9a-zA-Z]/g.test(v)){

alert("不能纯为非字母和数字的特殊符号");

returnfalse;

}

现在技术比以前好了那么“一丢丢”,就在想,能不能用一句正则来实现呢?当然是可以的,下面是具体的正则:

varv=$("#text").val();

reg=/^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$).{6,}$/;

alert(reg.test(v));

上面的正则表达的意思是,不能为纯数字,不能为纯小写字母,不能为纯大写字母,不能为纯特殊符号,至少六位。

不要看着有点复杂,其实很简单的,站长来给大家拆开分析一下:

(?!) 这是正则里的一个“语法结构”,表示“规定后面不是”的意思,看这篇《jquery正则中问号的三种[说四种那是忽悠人]用法详解及在线实例演示》

了解了上面这一句,那么上面的正则就好理解了:

(?![0-9]+$) 表示后面不能为纯数字

(?![a-z]+$) 表示后面不能为纯小写字母

(?![A-Z]+$) 表示后面不能为纯大写字母

(?!([^(0-9a-zA-Z)])+$) 表示后面不能为除数字和字母外的纯特殊符号

^ 这个符号单独用表示“开头”,用在中括号的开头,表示“非”;

.{6,} 表示至少6位的任意字符

$ 表示“结尾”

二:另外还有一种情况,那就是,有时我们需要我们的密码必须为“字母+数字+特殊符号”,那么我们要如何写呢?

按照上面的方法,我们可能会这样来写:

(?![0-9a-z]+$)不能为小写字母与数字

(?![0-9A-Z]+$)不能为大写字母与数字

(?![0-9\W]+$)不能为数字及特殊符号

(?![a-z\W]+$)不能为小写字母及特殊符号

(?![A-Z\W]+$)不能为大写字母及特殊符号

(?![0-9a-zA-Z]+$)不能为大写,小写字母与数字

把这三种情况也加上去后,就只剩下“必须包含数字、大小写字母和特殊符号”这一种情况了,但是我们也得出了一个超长的正则,这里就不写了!

那么有没有简单的方法呢?当然是有的:

varv=$("#text").val();

reg=/^(?=.*[a-zA-Z])(?=.*[1-9])(?=.*[\W]).{6,}$/;

alert(reg.test(v));

(?=)这个语法结构在正则里表示“设定后面是”的意思。

(?=.*[a-zA-Z])这句的意思就是后面必须有一位大写或小写字母

(?=.*[1-9]) 这句的意思是后面必须有一位数字

(?=.*[\W]) 这句的意思是后面必须有一个非字母数字及下划线的特殊符号 摘自 爱jQuery:/Html/jqueryjiqiao/200.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。