Javascript 如何使用正则表达式和jQuery匹配字符集中没有的所有内容?

Javascript 如何使用正则表达式和jQuery匹配字符集中没有的所有内容?,javascript,jquery,regex,Javascript,Jquery,Regex,我试图排除除[a-z][a-z][0-9]和[~!#$]之外的所有内容 我认为如果测试发现匹配,它将返回true,因为我包含了插入符号,所以它应该匹配表达式中没有的所有内容 但是像这样的输入是有效的:jAcK%%$21#x 当它不应该工作,因为它有我试图禁止的符号 我哪里出错了 谢谢使用match而不是test,因为test是RegExp的函数,而不是String var hasBadInput = !!"jAcK%%$21#x".match(/[^a-zA-Z0-9~!#$]/) //true

我试图排除除[a-z][a-z][0-9]和[~!#$]之外的所有内容

我认为如果测试发现匹配,它将返回true,因为我包含了插入符号,所以它应该匹配表达式中没有的所有内容

但是像这样的输入是有效的:jAcK%%$21#x

当它不应该工作,因为它有我试图禁止的符号

我哪里出错了


谢谢

使用
match
而不是
test
,因为test是
RegExp
的函数,而不是
String

var hasBadInput = !!"jAcK%%$21#x".match(/[^a-zA-Z0-9~!#$]/) //true
或者改变立场

(/[^a-zA-Z0-9~!#$]/).test("jAcK%%$21#x") //returns true

使用
match
而不是
test
,因为test是
RegExp
的函数,而不是
String

var hasBadInput = !!"jAcK%%$21#x".match(/[^a-zA-Z0-9~!#$]/) //true
或者改变立场

(/[^a-zA-Z0-9~!#$]/).test("jAcK%%$21#x") //returns true
应该在正则表达式上调用

var$name=$(“#name”);
$name.on(“键控”,函数(e){
如果(/[^a-zA-Z0-9~!#$]/.test($name.val())){
控制台日志(“Nope”);
返回false;
}否则{
控制台日志(“良好”);
}
})

应在正则表达式上调用

var$name=$(“#name”);
$name.on(“键控”,函数(e){
如果(/[^a-zA-Z0-9~!#$]/.test($name.val())){
控制台日志(“Nope”);
返回false;
}否则{
控制台日志(“良好”);
}
})


我从未见过任何
在javascript之前…这不是真的吗
逻辑?@aswzen它将一个值强制为其布尔等价值。我从未见过任何
在javascript之前…这是不是
不正确
逻辑?@aswzen它强制将一个值转换为其布尔等价值。