Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #51 (permalink)  
Старый 15.10.2014, 16:53
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от terminator-101
 
Регистрация: 14.10.2014
Сообщений: 117

Сообщение от danik.js
if (!(input == '' || input == Infinity || isNaN(input))) {

}
А ты уверен, что ему это ветвление вообще нужно? Может достаточно вообще одного isNaN? по-моему, Infinity и "" и даже \n\n дают false на isNaN
Ответить с цитированием
  #52 (permalink)  
Старый 15.10.2014, 17:05
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

terminator-101, да, с пустой строкой я затупил. Я наоборот, получается, запретил пустую строку.

А с Infinity затупил ты. Потому что Infinity - это число. Но мы его числом считать не хотим, поэтому отметаем.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #53 (permalink)  
Старый 15.10.2014, 17:10
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Вот правильный вариант. Хотя проверка на пустоту не обязательна. Просто для наглядности, что пустую строку принимаем. И для уменьшения лишних расчетов (тупо из принципа).
if (input == '' || !(input == Infinity || isNaN(input))) {

}
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #54 (permalink)  
Старый 15.10.2014, 17:10
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от terminator-101
 
Регистрация: 14.10.2014
Сообщений: 117

danik.js,
А с такой вот хренью что делать?
isNaN("\t")// false
Ответить с цитированием
  #55 (permalink)  
Старый 15.10.2014, 17:11
Интересующийся
Отправить личное сообщение для Ant_Jhon Посмотреть профиль Найти все сообщения от Ant_Jhon
 
Регистрация: 14.10.2014
Сообщений: 22

Все решилось паттерном терминатора, напомню задача была в том чтобы проверить на валидность введенную сумму, подходят числа вида n.n .n n. а так же пустая строка, событие вешается на кнопку сейв. то есть если ничего не ввели, то все равно можем сохранить и потом вернуться к заполнению. проверка на инфинити вообще тут странное лишнее дело, проверка на не число проходить не будет как сказал терминатор тк передается строка
Ответить с цитированием
  #56 (permalink)  
Старый 15.10.2014, 17:15
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от terminator-101
 
Регистрация: 14.10.2014
Сообщений: 117

Ant_Jhon,
Только имей в виду, что если ты будешь проверять как ты ранее показывал, типа re.test(input), у тебя будут проходить строки типа "foo10bar", если тебе надо то, что строка содержит ТОЛЬКО эти совпадения и ничего более, или ТОЛЬКО ОДНО из этих совпадений, и ничего более, тут надо другое решение искать.
Ответить с цитированием
  #57 (permalink)  
Старый 15.10.2014, 17:18
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Ant_Jhon
проверка на не число проходить не будет как сказал терминатор тк передается строка
Че? Где он так сказал? Все там в порядке.
Сообщение от Ant_Jhon
проверка на инфинити вообще тут странное лишнее дело
Ну а вдруг кто-нибудь введет Infinity в инпут

Пока трабла в этом:
Сообщение от terminator-101
isNaN("\t")// false
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #58 (permalink)  
Старый 15.10.2014, 17:21
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от terminator-101
 
Регистрация: 14.10.2014
Сообщений: 117

Сообщение от Ant_Jhon
проверка на не число проходить не будет как сказал терминатор тк передается строка
не, это я ступил там, isNaN как раз проверяет строки (там, видать, если число подается, приводится к строке). Поэтому, тебе это должно подойти, это проще, только я вот не уверен, что все возможные символы там будут корректно проходить, как знак табуляции, например, хз, нужны они тебе или нет, а так -- подходит вроде бы.
Ответить с цитированием
  #59 (permalink)  
Старый 15.10.2014, 17:27
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Думаю стоит просто удалять пробелы через input.trim(). При копипасте часто добавляется пробел справа, trim() бы тут помог.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #60 (permalink)  
Старый 15.10.2014, 17:31
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от terminator-101
 
Регистрация: 14.10.2014
Сообщений: 117

Сообщение от danik.js
пробел справа
Справа да, а если в середине?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярное выражение и метод test tsigel Общие вопросы Javascript 3 30.08.2013 13:47
регулярное выражение literator Ваши сайты и скрипты 1 18.08.2013 18:24
Помогите написать регулярное выражение! Dorian_bs Общие вопросы Javascript 7 09.12.2011 09:12
Регулярное выражение: любой символ, включая перевод строки Gleb Общие вопросы Javascript 3 28.07.2011 12:15
регулярное выражение theo_ Общие вопросы Javascript 15 21.06.2010 10:29