Javascript setCustomValidity不工作

Javascript setCustomValidity不工作,javascript,regex,Javascript,Regex,我的javascript使用了setcustomvalidity,但只有一个条件不起作用: $("#newPass").on('invalid',function(){ var tmp = $('#newPass').val(); var regex = /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]/; if(tmp == ""){ $('#newPass')[0].setCustomValidity(

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

 $("#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');
        }
      });
$(“#newPass”).on('invalid',function(){
var tmp=$('#newPass').val();
var regex=/^(?=.[A-Za-z])(?=...\d)[A-Za-z\d]/;
如果(tmp==“”){
$('#newPass')[0].setCustomValidity('新密码为空');
}else if(正则表达式测试(tmp)){
$('#newPass')[0]。setCustomValidity('密码必须是字母和数字的组合');
}否则如果(tmp长度<6){
$('#newPass')[0]。setCustomValidity('密码至少应为6');
}否则{
$('#newPass')[0].setCustomValidity('请检查您的密码');
}
});

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

尝试将
regex
变量值更改为:

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

如果使用它进行测试,如果字符串至少有一个字母和一个数字,它将返回
true
,否则
false

尝试将
regex
变量值更改为:

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

如果使用它进行测试,如果字符串至少有一个字母和一个数字,它将返回
true
,否则
false

请检查此项:

请检查此项:

但我需要必须在字符和数字之间组合的正则表达式,如“test123”。因此,如果传递是all number或char,则会显示错误消息。但我需要一个必须在字符和数字之间组合的正则表达式,如“test123”。因此,如果过程是all number或char,则会显示错误消息。var regex=/^(?=.[0-9])(?=.[a-zA-Z])([a-zA-Z0-9]+)$/;如果使用它进行测试,则如果字符串至少有1个字母和1个数字,它将返回true,否则返回falsevar regex=/^(?=.[0-9])(?=.[a-zA-Z])([a-zA-Z0-9]+)$/;如果使用它进行测试,如果字符串至少有1个字母和1个数字,则返回true,否则返回false