31Dec/090
isNumericString(): A JavaScript Function to Identify Numbers Stored as Strings
I wrote this function recently to determine whether a given string can be converted into a number by JavaScript's built-in parseInt() and parseFloat() functions. Take a look and let me know if you have any suggestions for improvement!
function isNumeric(str)
{
/*
Valid numeric string examples:
123456
1.23456
1.23e456
+123456
-123456
+1.23456
-1.23e456
etc.
*/
var validChars = "0123456789";
var validOnce = ".e";
var validAtStart = "+-";
var notValidAtStart = "e";
for (i = 0; i < str.length; i++)
{
var ch = str.charAt(i);
if(i == 0)
{
if (validChars.indexOf(ch) == -1 &&
validAtStart.indexOf(ch) == -1 &&
validOnce.indexOf(ch) == -1)
{
return false;
}else if(notValidAtStart.indexOf(ch) != -1)
{
return false;
}
}else if (validChars.indexOf(ch) == -1 &&
validOnce.indexOf(ch) == -1)
{
return false;
}
}
//check validonce are only appearing once
for (i = 0; i < validOnce.length; i++)
{
var ch = validOnce.charAt(i);
if(str.indexOf(ch) != str.lastIndexOf(ch))
{
return false;
}
}
return true;
}
