admin管理员组

文章数量:1289877

I have following regular expression in JQuery. It always returns true.

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();

}

It returns true for everything, for example "ABCD, ^&&&^&" should be false, it returns true.

I have following regular expression in JQuery. It always returns true.

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();

}

It returns true for everything, for example "ABCD, ^&&&^&" should be false, it returns true.

Share Improve this question edited Jul 16, 2013 at 6:19 shyam 9,3684 gold badges31 silver badges45 bronze badges asked Jul 16, 2013 at 6:15 TBATBA 1,1975 gold badges46 silver badges83 bronze badges 1
  • 3 "I have following regular expression in JQuery" jQuery has absolutely nothing to do with regular expressions. jQuery is a library of functions. JavaScript is a language with, amongst other things, regular expressions. – T.J. Crowder Commented Jul 16, 2013 at 6:22
Add a ment  | 

2 Answers 2

Reset to default 6

match returns the matches found in the string. what you really want is test eg. like this

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

You regexp should be:

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

本文标签: javascriptRegular Expression always returns trueStack Overflow