js正则验证密码,超过指定位数提示位数已超出,请重新输入。

   // 验证和输入两不误
     var exp = /^(?![a-z0-9]+$)(?![a-zA-Z]+$)[a-zA-Z][a-zA-Z0-9]{5,}$/;
    while(!exp.test(input)) {
        var input = prompt("请输入");
        var arr = [];
            arr = exp.exec(input);
            arr = arr[0].split("").length-1;//查找每一轮返回内容的个数
            // console.log(arr);
        // console.log(typeof arr);

        // console.log(arr);
        if(!exp.test(input)){

        alert("密码格式不正确");

        }else if(arr>10){

            alert("个数超过10位了");

        }else{

        document.write("验证通过");
        }
}

else if(arr>10){这一步能判断出arr返回数组的位数,上面的代码应该怎么修改,来实现,位数超过了提示完后,继续在prompt中输入,就是输入和判断两不误。

阅读 3.6k
1 个回答

// 验证和输入两不误

 var exp = /^(?![a-z0-9]+$)(?![a-zA-Z]+$)[a-zA-Z][a-zA-Z0-9]{5,}$/;
 var arr = [];
while(true) {
    var input = prompt("请输入");

    if(input!=""){
        arr = exp.exec(input);
        arr = arr[0].split("").length-1;//查找每一轮返回内容的个数
    }
    if(!exp.test(input)){

    alert("密码格式不正确");

    }else if(arr>10){
        alert("个数超过10位了");

    }else{

    document.write("验证通过");
    break;
    }

}

汗,逻辑问题。总算好了。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题