我正在尝试排除除[a-z] [A-Z] [0-9] 和 [~!#$] 之外的所有内容。
if( $("#name").val().test(/[^a-zA-Z0-9~!#$]/)) {
alert("Disallowed character used.");
return false;
}
我认为如果 test 找到匹配项,它会返回 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
关于javascript - 如何使用正则表达式和 jQuery 匹配字符集中不包含的所有内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49421637/