![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
15.10.2014, 16:53
|
Кандидат Javascript-наук
|
|
Регистрация: 14.10.2014
Сообщений: 117
|
|
Сообщение от danik.js
|
if (!(input == '' || input == Infinity || isNaN(input))) {
}
|
А ты уверен, что ему это ветвление вообще нужно? Может достаточно вообще одного isNaN? по-моему, Infinity и "" и даже \n\n дают false на isNaN
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
15.10.2014, 17:05
|
![Аватар для danik.js](https://javascript.ru/forum/image.php?u=8952&dateline=1362465013) |
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
terminator-101, да, с пустой строкой я затупил. Я наоборот, получается, запретил пустую строку.
А с Infinity затупил ты. Потому что Infinity - это число. Но мы его числом считать не хотим, поэтому отметаем.
__________________
В личку только с интересными предложениями
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
15.10.2014, 17:10
|
![Аватар для danik.js](https://javascript.ru/forum/image.php?u=8952&dateline=1362465013) |
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Вот правильный вариант. Хотя проверка на пустоту не обязательна. Просто для наглядности, что пустую строку принимаем. И для уменьшения лишних расчетов (тупо из принципа).
if (input == '' || !(input == Infinity || isNaN(input))) {
}
__________________
В личку только с интересными предложениями
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
15.10.2014, 17:10
|
Кандидат Javascript-наук
|
|
Регистрация: 14.10.2014
Сообщений: 117
|
|
danik.js,
А с такой вот хренью что делать?
isNaN("\t")// false
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
15.10.2014, 17:11
|
Интересующийся
|
|
Регистрация: 14.10.2014
Сообщений: 22
|
|
Все решилось паттерном терминатора, напомню задача была в том чтобы проверить на валидность введенную сумму, подходят числа вида n.n .n n. а так же пустая строка, событие вешается на кнопку сейв. то есть если ничего не ввели, то все равно можем сохранить и потом вернуться к заполнению. проверка на инфинити вообще тут странное лишнее дело, проверка на не число проходить не будет как сказал терминатор тк передается строка
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
15.10.2014, 17:15
|
Кандидат Javascript-наук
|
|
Регистрация: 14.10.2014
Сообщений: 117
|
|
Ant_Jhon,
Только имей в виду, что если ты будешь проверять как ты ранее показывал, типа re.test(input), у тебя будут проходить строки типа "foo10bar", если тебе надо то, что строка содержит ТОЛЬКО эти совпадения и ничего более, или ТОЛЬКО ОДНО из этих совпадений, и ничего более, тут надо другое решение искать.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
15.10.2014, 17:18
|
![Аватар для danik.js](https://javascript.ru/forum/image.php?u=8952&dateline=1362465013) |
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Сообщение от Ant_Jhon
|
проверка на не число проходить не будет как сказал терминатор тк передается строка
|
Че? Где он так сказал? Все там в порядке.
Сообщение от Ant_Jhon
|
проверка на инфинити вообще тут странное лишнее дело
|
Ну а вдруг кто-нибудь введет Infinity в инпут
Пока трабла в этом:
Сообщение от terminator-101
|
isNaN("\t")// false
|
__________________
В личку только с интересными предложениями
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
15.10.2014, 17:21
|
Кандидат Javascript-наук
|
|
Регистрация: 14.10.2014
Сообщений: 117
|
|
Сообщение от Ant_Jhon
|
проверка на не число проходить не будет как сказал терминатор тк передается строка
|
не, это я ступил там, isNaN как раз проверяет строки (там, видать, если число подается, приводится к строке). Поэтому, тебе это должно подойти, это проще, только я вот не уверен, что все возможные символы там будут корректно проходить, как знак табуляции, например, хз, нужны они тебе или нет, а так -- подходит вроде бы.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
15.10.2014, 17:27
|
![Аватар для danik.js](https://javascript.ru/forum/image.php?u=8952&dateline=1362465013) |
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Думаю стоит просто удалять пробелы через input.trim(). При копипасте часто добавляется пробел справа, trim() бы тут помог.
__________________
В личку только с интересными предложениями
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
15.10.2014, 17:31
|
Кандидат Javascript-наук
|
|
Регистрация: 14.10.2014
Сообщений: 117
|
|
Сообщение от danik.js
|
пробел справа
|
Справа да, а если в середине?
|
|
|
|