0

I have this code, it looks alright and is really basic, but i can't make it work:

function checkValid(elem){

 var abc = elem.value;

 var re = "/[0-9]/";

 var match = re.test(abc);

 alert(match);
}

It matches 0 and 9, but not 1 to 8, what's wrong here? Thanks.

ManBehindTheCurtain
  • 2,498
  • 4
  • 24
  • 33

3 Answers3

3

re is a string, not a RegExp object.

You need to use a regex literal instead of a string literal, like this:

var re = /[0-9]/;

Also, this will return true for any string that contains a number anywhere in the string.
You probably want to change it to

var re = /^[0-9]+$/;
SLaks
  • 868,454
  • 176
  • 1,908
  • 1,964
2

Try removing the double quotes...

 var re = /[0-9]/;
Gabe
  • 49,577
  • 28
  • 142
  • 181
0

Use \d to match a number and make it a regular expresison, not a string:

var abc = elem.value;
var re = /\d/;
var match = re.test(abc);
alert(match);
Ryan Bigg
  • 106,965
  • 23
  • 235
  • 261