我有使用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
不起作用,对此有什么解决方案吗?也许正则表达式是错误的? 最佳答案
尝试将您的regex
变量值更改为此:
var regex = /^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$/;
如果使用它进行测试,则如果字符串包含至少1个字母和1个数字,则它将返回
true
,否则返回false
。