Search code examples
javascriptregexdigits

javascript, best way to tell if a val is a single digit


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.


Solution

  • 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;
    }