作业帮 > 综合 > 作业

求一JS正则表达式: 密码长度6位以上,须包含大写、小写、数字、特殊符号中的任意3种.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/22 14:47:33
求一JS正则表达式: 密码长度6位以上,须包含大写、小写、数字、特殊符号中的任意3种.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head>
<body>
<script type="text/javascript">
/**
*
*
*
*这样的正则貌似最好用多条吧,一条的话不但写起来困难,你反馈给页面提示也不容易,所以我给你写一段验证代码,你来参考一下如何?
*如果你非要用一条正则,这正则实在是很难写,而且在JS里,还不支持正则预判,难度更高
*下面是实现的代码,你只要修改一下就可以直接拿去用了.
*
*
*
**/
function testPass(str){
\x05var rC = {
\x05\x05lW:'[a-z]',
\x05\x05uW:'[A-Z]',
\x05\x05nW:'[0-9]',
\x05\x05sW:'[\\u0020-\\u002F\\u003A-\\u0040\\u005B-\\u0060\\u007B-\\u007E]'
\x05};
\x05function Reg(str, rStr){
\x05\x05var reg = new RegExp(rStr);
\x05\x05if(reg.test(str)) return true;
\x05\x05else return false;
\x05}
\x05if(str.length < 6){
\x05\x05document.title = '您的密码长度太短';
\x05\x05return false;
\x05}else{
\x05\x05var tR = {
\x05\x05\x05l:Reg(str, rC.lW),
\x05\x05\x05u:Reg(str, rC.uW),
\x05\x05\x05n:Reg(str, rC.nW),
\x05\x05\x05s:Reg(str, rC.sW)
\x05\x05};
\x05\x05if((tR.l && tR.u && tR.n) || (tR.l && tR.u && tR.s) || (tR.s && tR.u && tR.n) || (tR.s && tR.l && tR.n)){
\x05\x05\x05document.title = '密码符合要求';
\x05\x05\x05return true;
\x05\x05}else{
\x05\x05\x05document.title = '您的密码必须含有“小写字母”、“大写字母”、“数字”、“特殊符号”中的任意三种';
\x05\x05\x05return false;
\x05\x05}
\x05}
}

</script>
<input type="text" id="pass" value="abc12C" /> <input type="button" value="测试" onClick="testPass(document.getElementById('pass').value);" />
 </body>
</html>

上面的代码有说明,另外,这段代码是可以供你测试的,是一个完整的HTML文档,只要复制回去,测试一下就OK.

再问: 不错,测试可以用。要是用一个正则表达式写就好看多了!
再答: 嗯,确实,不过我的这套程序差不多压缩到极致了,应该再没什么大的压缩空间了。