setCustomValidity不起作用

时间:2017-06-19 09:38:24

标签: javascript regex

我有这个使用setcustomvalidity的JavaScript,但只有一个条件不起作用:

 $("#newPass").on('invalid',function(){
        var tmp = $('#newPass').val();
        var regex = /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]/;
        if(tmp == ""){
          $('#newPass')[0].setCustomValidity('new password is empty');
        }else if(regex.test(tmp)){
            $('#newPass')[0].setCustomValidity('password must be combination of letter and number');
        }else if(tmp.length < 6){
          $('#newPass')[0].setCustomValidity('Password shoult at least 6');
        }else{
          $('#newPass')[0].setCustomValidity('please check your password');
        }
      });

regex.test不起作用,有什么解决方法吗?也许正则表达式是错的?

2 个答案:

答案 0 :(得分:0)

尝试将regex变量值更改为:

var regex = /^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$/;

如果您使用它进行测试,如果字符串至少1个字母且1个数字,则会返回true,否则为false

答案 1 :(得分:0)