如何用正则表达式实现规定用户输入密码的格式为:(长度6到18个字符,不能全为重复字母,或者连续字母)

例如aaaaaa或者abcdefgh这样都不通过,但是aabbcccdddd可以。如果js不能实现,用什么方法可以实现?... 例如aaaaaa或者abcdefgh这样都不通过,但是aabbcccdddd可以。如果js不能实现,用什么方法可以实现? 展开
 我来答
帐号已注销
推荐于2017-12-15 · TA获得超过4630个赞
知道大有可为答主
回答量:1345
采纳率:50%
帮助的人:1612万
展开全部
// 存在一个你不容易发现的问题,基本能解决你的问题
/**
 * checkPassword函数,参数为要检验的密码pwd,
 * 如果pwd符合规则,返回true,否则返回false
 */
function checkPassword(pwd){
    // 长度为6到18个字符
    var reg = /^.{6,18}$/;
    if(!reg.test(pwd)){
        return false;
    }
    // 全部重复
    var repeat = true;
    // 连续字符
    var series = true;

    var len = pwd.length;
    var first = pwd.charAt(0);
    for(var i=1;i<len;i++){
        repeat = repeat && pwd.charAt(i) == first;
        series = series && pwd.charCodeAt(i) == pwd.charCodeAt(i-1) + 1;
    }
    return !(repeat || series);
}
jinyc007
2013-05-27 · TA获得超过934个赞
知道小有建树答主
回答量:398
采纳率:75%
帮助的人:469万
展开全部
function checkPwd(str)
{
    var str=str.replace(/(^\s*)|(\s*$)/g,''),
        len=str.length,
        error='error:none', // 无错误
        repeat=new RegExp('(\\w)\\1{'+(len-1)+'}'),
        series='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    if(len<6 || len>18)
        error='error:length'; // 错误:字符数
    else if(repeat.test(str))
        error='error:repeat'; // 错误:重复
    else if(series.indexOf(str)>=0)
        error='error:series'; // 错误:连续
    // alert(error); 测试用
    return error=='error:none';
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梦里寻你我他
2013-05-27 · TA获得超过2199个赞
知道大有可为答主
回答量:2171
采纳率:42%
帮助的人:1187万
展开全部
这个要用正则+js判断来作

正则可以判断长度以及是否为字母,但是无法判断输入数据是否重复和连续
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式