我想做的是确定字符串是否为数字。我想知道人们对我正在决定使用的两种解决方案的想法(或者是否有更好的解决方案我还没有找到)。parseInt函数不适合,因为对于像“40岁”的参数它会返回一个整数值。我正在考虑使用以下两种解决方案之一:
1. 使用带有try catch的Integer.valueOf()函数 2. 使用正则表达式
1. 使用带有try catch的Integer.valueOf()函数 2. 使用正则表达式
function isNumeric(quantity)
{
var isNumeric = true
try
{
Integer.valueOf(quantity)
}
catch(err)
{
isNumeric = false
}
return isNumeric
}
或逐个检查每个字符
function IsNumeric(quantity)
{
var validChars = "0123456789";
var isNumber = true;
var nextChar;
for (i = 0; i < quantity.length && isNumber == true; i++)
{
nexChar = quantity.charAt(i);
if (validChars.indexOf(nextChar) == -1)
{
isNumber = false;
}
}
return IsNumber;
}
我认为应该有比这两种方法更简单的解决方案,难道我错过了什么吗?
注意:我也在使用jQuery,如果有jQuery的解决方案那就足够了。
+
或-
)吗? - David R Tribbleif (nexChar >= '0' && nexchar <= '9')
比使用indexOf()
更高效。 - David R Tribble