Arrrgh! RegEx is icky for this. If you can't use IsNaN(), this should work much better: function IsNumeric(input) { return (input - 0) == input; } The <code>(input - 0)</code> forces the value to be interpreted as a number for the mathmatical op. Then the _numeric_ result is compared as a string (if that's what you passed in, but if you passed in a number it should return <code>true</code> anyway) to your original value. If they match, we have a winner.