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.

bah
  • 2,293
  • 4
  • 23
  • 26

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
  • 837,282
  • 173
  • 1,862
  • 1,933
2

Try removing the double quotes...

 var re = /[0-9]/;
Gabe
  • 48,376
  • 28
  • 140
  • 179
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
  • 105,171
  • 22
  • 229
  • 258