Можно ли разбирать всю строку? - PullRequest
11 голосов
/ 15 июля 2010

Как известно, функция javascript parseFloat работает только до тех пор, пока не встретит недопустимый символ, например,

parseFloat("10.123") = 10.123
parseFloat("12=zzzz") = 12
parseFloat("z12") = NaN

Есть ли способ или реализация parseFloat, которая возвращала бы NaN, если строка whole не является допустимым числом с плавающей точкой?

Ответы [ 3 ]

20 голосов
/ 15 июля 2010

Используйте это вместо:

var num = Number(value);

Тогда вы можете сделать:

if (isNaN(num)) {
    // take proper action
}
4 голосов
/ 15 июля 2010

Возможно попробуйте:

var f = parseFloat( someStr );
if( f.toString() != someStr ) {
  // string has other stuff besides the number
}

Обновление : не делайте этого, используйте метод @ dcp:)

0 голосов
/ 15 июля 2010
var asFloat = parseFloat("12aa");
if (String(asFloat).length != "12aa".length) {
     // The value is not completely a float
}
else {
     // The value is a float
}
...