我现在要实现:
密码强度要求:至少六位长度;不能有3个连续的相同字符,密码中不能包含“123”,“321”,“456”,“654”,“abc”
其中不能有三个连续的相同字符不知道用正则表达式怎么写.虽然可以通过穷举这样如:
if(document.forms[0].cipher1.value.search(/(000|111|222|333|444|555|666|777|888|999){1}/) != -1)
{
alert("请不要包含三位重复的数字");
bool=false;
return bool;
}
但是这样也不是办法啊..请朋友帮个忙.如何写不能有3个连续的相同字符??

解决方案 »

  1.   

    也可以alert(/([0-9a-z])\1{2}/i.test('111'))[0-9a-z]后面跟的\1是向后引用,就是引用前面括号内的内容
      

  2.   

    加上长度不能小于6位的判断
    <script language=javascript>
    var str="daaddadd"
    re=/^(([a-z0-9])(?!(\2\2))){6,}$/i
    alert(re.test(str))
    </script>
      

  3.   

    谢谢..可以了
    我最后的写法:
    if(document.forms[0].cipher1.value.search(/(\S)\1{2}/) != -1)
    {
    alert("密码中请不要包含三位重复的字符");
    bool=false;
    return bool;
    }
    if(document.forms[0].cipher1.value.search(/(123|321|456|654|abc){1}/) != -1)
    {
    alert(" 密码中请不包含'123','321','456','654','abc' ");
    bool=false;
    return bool;
    }
    这样方便多了.谢谢楼上的几位朋友