用一个正则好像做不到
可以用组合的,
1.  /[a-zA-Z0-9]{6,10}/.test(str)
3.  !/([[a-zA-Z0-9])\1{2}/.test(str)
第2个我没想到用正则怎么判断
用循环做吧
function diffCharNum( str )
{
tmp=str.charAt(0);
for(i=0;i<str.length;i++)
{
   if(tmp.indexOf(str.charAt(i)) == -1 )
      tmp += str.charAt(i)
}
if(tmp.length < 4 )
   return false
else
   return true;
}综合一下就是
if( /[a-zA-Z0-9]{6,10}/.test(str) && !/([[a-zA-Z0-9])\1{2}/.test(str) && diffCharNum(str)>4)
   alert('密码规则正确');-----------------
没测试

解决方案 »

  1.   

    上面的function返回错误了
    function diffCharNum( str )
    {
       tmp=str.charAt(0);
       for(i=0;i<str.length;i++)
       { 
          if(tmp.indexOf(str.charAt(i)) == -1 )
             tmp += str.charAt(i)
       }
       return tmp.length;
    }
      

  2.   

    <SCRIPT LANGUAGE="JavaScript">
    /*
    ●  密码的最小长度为6,最大为10,必须由英文字母和数字组成.
    ●  必须有四个不同的字符.
    ●  密码不能包含空格.
    ●  密码不能包含超过两个以上连续相同的字符(两个连续相同的字符可以,多了可不行).
    */
    function validpwd(str)
    {
    var pattern1 = /^[a-z\d]{6,10}$/i;
    var pattern2 = /(.)\1\1/; var ary = str.split('');
    var o = new Object();
    var j = 0;
    for (var i=0; i<ary.length; i++)
    {
    if (typeof o[ary[i]] == 'undefined')
    {
    o[ary[i]] = 1;
    j++;
    }
    } if (j >= 4 && pattern1.test(str) && !pattern2.test(str))
    return true;
    else
    return false;
    }alert('abcdaeebab : ' + validpwd('abcdaeebab'));
    alert('abcdeeebab : ' + validpwd('abcdeeebab'));
    alert('ababababab : ' + validpwd('ababababab'));
    alert('abcde : ' + validpwd('abcde'))
    </SCRIPT>