Welcome is every organ and attribute of me, and of any man hearty and clean, Not an inch nor a particle of an inch is vile, and none shall be less familiar than the rest.

j Query, and some other javascript libraries already include such a function, usually called is Numeric. One way to check for Na N's is to check for numeric values that don't equal themselves, function is Number(n) function is Finite Number(n) function is Comparable Number(n) is Finite Number('Na N') false is Finite Number('Ox FF') true is Number('Na N') true is Number(1/0-1/0) true is Comparable Number('Na N') false is Comparable Number('Infinity') true Explained: Create a copy of itself, then converts the number into float, then compares itself with the original number, if it is still a number, (whether integer or float) , and matches the original number, that means, it is indeed a number. Positive hex numbers start with 0x and negative hex numbers start with -0x.

There is also a post on stackoverflow that has been widely accepted as the answer, the same general routine that the afore mentioned libraries are using. It works with numeric strings as well as plain numbers. Positive oct numbers start with 0 and negative oct numbers start with -0.

If you want the value to support more special formats, you should use the transformer option.

It would be great if numeraljs would allow to validate a given string to be a number (or not).

To get a string contains only numbers (0-9) we use a regular expression (/^[0-9] $/) which allows only numbers.

Next, the match() method of the string object is used to match the said regular expression against the input value. To get a string contains only numbers (0-9) with a optional or - sign (e.g.

Granted, a whitespace replace is simpler than a number parse, but it's still definitely "icky".

The accepted answer failed your test #7 and I guess it's because you changed your mind. is Na N('blah') ""); // false $Numeric('-1'); // true $Numeric('-1.5'); // true $Numeric('0'); // true $Numeric('0.42'); // true $Numeric('.42'); // true $Numeric('0x89f'); // true (valid hexa number) $Numeric('99,999'); // false $Numeric('#abcdef'); // false $Numeric('1.2.3'); // false $Numeric(''); // false $Numeric('blah'); // false (because they are not actually part of the number as far as I concerned, they are separate operators): I needed this for a tokenizer, where sending the number to Java Script for evaluation wasn't an option...