Javascript 使用Jquery检查大写/小写/数字

Javascript 使用Jquery检查大写/小写/数字,javascript,jquery,html,css,Javascript,Jquery,Html,Css,要么我真的是智障,要么就是睡眠不足,但为什么这不起作用呢?如果我使用“或”操作符,它在每个单独的测试中都会工作,但一旦它更改为“和”操作符,它就会停止工作 我试图测试表单的密码输入,看看它是否包含小写、大写和至少1个符号。我在这方面遇到了很多麻烦,所以帮助会很好,这是我的代码 var upperCase= new RegExp('[^A-Z]'); var lowerCase= new RegExp('[^a-z]'); var numbers = new RegExp('[^0-9]');

要么我真的是智障,要么就是睡眠不足,但为什么这不起作用呢?如果我使用“或”操作符,它在每个单独的测试中都会工作,但一旦它更改为“和”操作符,它就会停止工作

我试图测试表单的密码输入,看看它是否包含小写、大写和至少1个符号。我在这方面遇到了很多麻烦,所以帮助会很好,这是我的代码

var upperCase= new RegExp('[^A-Z]');
var lowerCase= new RegExp('[^a-z]');
var numbers = new RegExp('[^0-9]');

if(!$(this).val().match(upperCase) && !$(this).val().match(lowerCase) && !$(this).val().match(numbers))    
{
    $("#passwordErrorMsg").html("Your password must be between 6 and 20 characters. It must contain a mixture of upper and lower case letters, and at least one number or symbol.");
}
else
{
    $("#passwordErrorMsg").html("OK")
}

所有正则表达式都在搜索除您提供的范围之外的任何内容。所以,[^A-Z]除了A-Z之外,什么都找

你也在否定每一场比赛

您可以尝试通过删除^,然后反转逻辑来修改正则表达式定义。所以

var upperCase= new RegExp('[A-Z]');
var lowerCase= new RegExp('[a-z]');
var numbers = new RegExp('[0-9]');

if($(this).val().match(upperCase) && $(this).val().match(lowerCase) &&   $(this).val().match(numbers))  
{
    $("#passwordErrorMsg").html("OK")

}
else
{
    $("#passwordErrorMsg").html("Your password must be between 6 and 20 characters.     It must contain a mixture of upper and lower case letters, and at least one number or symbol.");
}
读起来可能更直观一些?

var upperCase=new RegExp(“[a-Z]”);
var upperCase= new RegExp('[A-Z]');
var lowerCase= new RegExp('[a-z]');
var numbers = new RegExp('[0-9]');

if($(this).val().match(upperCase) && $(this).val().match(lowerCase) &&   $(this).val().match(numbers) && $(this).val().lenght>=6 && $(this).val()<=20)  
{
    $("#passwordErrorMsg").html("OK")

}
else
{
    $("#passwordErrorMsg").html("Your password must be between 6 and 20 characters.     It must contain a mixture of upper and lower case letters, and at least one number or symbol.");
}
var lowerCase=newregexp('[a-z]'); 变量编号=新的RegExp('[0-9]');
如果($(this).val().match(大写)和&$(this.val().match(小写)和&$(this.val().match(数字)和&$(this.val().lenght>=6&&$(this.val())很好,非常感谢。另外,我必须检查另一个输入字段中的无效字符,RegExp会是什么?比如,括号之间的位?新的RegExp(“[^abc]”);其中a b和c是要标记为无效的字符。请记住用反斜杠转义特殊字符。这是一个很好的正则表达式引用,为什么不能使用
if(!$(This).val().match(大写)| |!$(This).val().match(小写)| |!$(This).val().match(数字)){