求一正则验证密码:
数字、字母和特殊字符的至少任两种组合,且不能有重复、连续的字符,及不能包含标点符号。错误示例:
111111
112233
abcabc
1,2.3(a正确示例:
csdn135
csdn_#@
csdn_1正则javascript密码

解决方案 »

  1.   

    List<string> _list = new List<string>() { 
                    "111111",
                    "112233",
                    "abcabc",
                    "1,2.3(a",
                    "csdn135",
                    "csdn_#@",
                    "csdn_1" 
                };
                _list.ForEach(x => Console.WriteLine(x+"\t"+Regex.IsMatch(x, @"(?i)^(?!\d+$)(?![a-z]+$)(?![!@#$%^&*()_+]+$)(?![\da-z!@#$%^&*()_+]*?([\da-z!@#$%^&*()_+])[\da-z!@#$%^&*()_+]*?\1)[\da-z!@#$%^&*()_+]+$")));
      

  2.   

    看错板块了 JS可以如下,其中特殊符号可以自行添加
     var array=["111111","112233","abcabc","1,2.3(a","csdn135","csdn_#@","csdn_1"];
    var pattern=/^(?!\d+$)(?![a-z]+$)(?![!@#$%^&*()_+]+$)(?![\da-z!@#$%^&*()_+]*?([\da-z!@#$%^&*()_+])[\da-z!@#$%^&*()_+]*?\1)[\da-z!@#$%^&*()_+]+$/i;
    for(var i in array)
    alert(array[i]+":"+pattern.test(array[i]));
      

  3.   

    感谢楼上帮助,但是还有一些会漏掉:
    abc123
    321csdn
    这些就过去了
      

  4.   

    行,了解,那我再用ASCII值判断下,非常感谢
      

  5.   

    不晓得你的特殊字符包括哪些,下面的代码是以 #_@ 三个字符为特殊字符:var ss = ['111111', '112233', 'abcabc', '1,2.3(a', 'csdn135', 'csdn_#@', 'csdn_1', '1a1', 'sdfs'], 
        reg = /^(?!\d+$|[a-z]+$|[@_#]+$)([0-9a-z#_@])(?!.+\1)[0-9a-z#_@]+$/;
    for(var i = 0, il = ss.length; i < il; i++) alert(ss[i] + '\r\n' + reg.test(ss[i]))
      

  6.   

    正则表达式稍作修改,改为:
    reg = /^(?!\d+$|[a-z]+$|[@_#]+$)([0-9a-z#_@])(?!.*\1)[0-9a-z#_@]+$/;
    否则'ss'型的不正确