views:

51

answers:

3

Hi, 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.

+3  A: 

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
+3  A: 

Try removing the double quotes...

 var re = /[0-9]/;
gmcalab
A: 

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
Thanks! Now it works :)
bah