parseFloat или как проверить, что все-таки ввел пользователь?
Добрый день,
есть незадачка, хочу проверять то ли что надо ввел пользователь в input type="text" Мне надо проверять float ли ввел пользователь и не ввел ли пользователь чего-то лишнего. Например, пользователь вводит: "-50", "-50A", "3", "+3", "A3", "3.0", " 3.5", "5.00", "2.0e-2", "2.0e-02" Очевидно, что только "-50A", "A3" - не верные варианты ввода. Если пользовать trim, parseFloat, оба эти случая конечно распознаются, но одновременно "5.00", "3.0", "+3", "2.0e-2", "2.0e-02" тоже распознаются как не верные. Скажите, пожалуйста, есть ли какой-то способ проверить число ли это (именно float) и нет ли до или после какого-то левого не пустого символа? PS: причем очень хотелось бы чтобы запись числа соответсвовала бы локали у пользователся, то есть американцы писали бы 0.001, а остальные страны 0,001 Спасибо! |
Цитата:
Но вот "-50A" parseFloat распознает как -50. Можно так проверять ! isNaN(n - parseFloat(n)) //true - если правильное строковое представление числа. |
Спасибо большое!!!
isNaN(n - parseFloat(n)) как раз то, что искал!!! 5.00 распознается как 5, если я потом это конвертирую назад в строку и сравниваю, получается несовпадение. С остальными примерами "3.0", "+3", "2.0e-2", "2.0e-02" - также, поэтому похоже isNaN(n - parseFloat(n)) - единственное правильное решение, СПАСИБО БОЛЬШОЕ!!! |
Часовой пояс GMT +3, время: 15:41. |