whats the best way to tell if a value in javascript is a single digit. Ive been doing something like
var valAsString = '' + val;
if (valAsString.match(/\d/) {}
clarification: I mean one of 0,1,2,3,4,5,6,7,8,9
Also, should what I have work? Im surprised how many different ways people are coming up with for this.
The /\d/
regexp will match a digit anywhere on a string, for example in "foo1"
will match "1"
.
For a regexp approach need something like this, to ensure that the string will contain a single digit:
if (/^\d$/.test(val)) {
//..
}
Note that I'm using the test
method, which is recommended when you only want to check if a string matches the pattern, also, the test
method internally will convert to sting the argument.
Another short non-regexp approach:
function isDigit(val) {
return String(+val).charAt(0) == val;
}