Javascript 正则表达式总是返回true

Javascript 正则表达式总是返回true,javascript,jquery,regex,Javascript,Jquery,Regex,我在JQuery中有以下正则表达式。它总是返回真的 var reg = new RegExp("[a-zA-Z0-9 ,]+"); var key = $('#keyId').val().trim(); if (key.match(reg)) { $("#TitleError").hide(); } else { $("#TitleError").text("special characters not allowed!!").show(); } 对于所有内容,它都返回true,例如

我在JQuery中有以下正则表达式。它总是返回真的

var reg = new RegExp("[a-zA-Z0-9 ,]+");
var key = $('#keyId').val().trim();
if (key.match(reg)) {
  $("#TitleError").hide();
}
else {
  $("#TitleError").text("special characters not allowed!!").show();

}
对于所有内容,它都返回true,例如“ABCD,^&&&&&^&”应为false,则返回true

您的regexp应该是:


var reg=new RegExp('^[a-zA-Z0-9,]+$)

match
返回在字符串中找到的匹配项。你真正想要的是
test

/^[a-zA-Z0-9 ,]+$/.test(key)
or 
reg.test(key)

“我在JQuery中有以下正则表达式”JQuery与正则表达式完全无关。jQuery是一个函数库。JavaScript是一种包含正则表达式的语言。谢谢,我错过了$!!另外,我使用了Match而不是test,因为@shyam说:)谢谢shyam。是否有任何场景匹配失败?我认为它实际上也是这样做的。
^
$
在这里很重要,这意味着整个字符串必须与表达式匹配<代码>“ABCD,^&&&&^&”包含一些与正则表达式匹配的字符,因此将返回这些字符。如果输入没有,例如
“^&&&&&&&”
match
将返回
null
,这将使布尔测试失败