Данные формы всегда текстовые.Я предлагаю, чтобы вы проанализировали его как целое число и сравнили его с оригиналом:
var sampleData = ["not a number", "0", "10", "3.14", "-12", "-0.34", "2e10", "34foo", "foo34"];
var integers = [], notIntegers = [];
for(var i=0, len=sampleData.length; i<len; i++){
var original = sampleData[i];
var parsed = parseInt(original, 10);
if( !isNaN(parsed) && original==parsed ){
integers.push(parsed);
}else{
notIntegers.push(original);
}
}
alert("Integers: " + integers.join(", ") + "\nNot integers: " + notIntegers.join(", "));
Это показывает:
Integers: 0, 10, -12
Not integers: not a number, 3.14, -0.34, 2e10, 34foo, foo34
Научная запись не поддерживается, также как и тысячи разделителей.Если это проблема, вам нужно что-то другое;)
Обновление: Я хочу пояснить, что это только один из возможных подходов, а не единственная Истина.Этот подход имеет смысл, если вам нужно выполнить математические расчеты с данными, поэтому вы все равно должны получить числовую переменную.