# Javascript for validating date

First, the code above would return true if the argument was an array of length 1, and that single element was of a type deemed as numeric by the above logic. This one takes most of what has already been mentioned into consideration, but includes hex and octal numbers, negative scientific, Infinity and has removed decimal scientific (4e3.2 is not valid).

During some projects I have needed to validate some data and be as certain as possible that it is a javascript numerical value that can be used in mathematical operations. Only problem I had with @CMS's answer is the exclusion of Na N and Infinity, which are useful numbers for many situations.Since the left hand side is now numeric, type coercion is again used.Now that the input from both sides was coerced to the same type from the same original value, you would think they should always be the same (always true).To alleviate this problem, I added a check to discount arrays from the logic I then took CMSs 30 test cases and cloned the testing on jsfiddle added my extra test cases and my above described solution. it should be noted that it assumes that '.42' is NOT a number, and '4.' is NOT a number, so this should be taken into account.It may not replace the widely accepted/used answer but if this is more of what you are expecting as results from your is Numeric function then hopefully this will be of some help. The idea here is that every number or integer has one "canonical" string representation, and every non-canonical representation should be rejected.Please also try not to crowd your code with explanatory comments, as this reduces the readability of both the code and the explanations! Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

// Whitespace strings: Is Numeric(' ') == true; Is Numeric('\t\t') == true; Is Numeric('\n\r') == true; // Number literals: Is Numeric(-1) == false; Is Numeric(0) == false; Is Numeric(1.1) == false; Is Numeric(8e5) == false; Arrrgh! Reg Ex is icky for this, and I'm not talking just performance.

It's so easy to make subtle, impossible to spot mistakes with your regular expression.

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.

Top five features in Java Script ES6 Worth Mastering Java Script ES6 adds a slew of new features to the Java Script language, some more groundbreaking and widely applicable than others.