Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.05.2011, 23:42
Профессор
Отправить личное сообщение для dima85 Посмотреть профиль Найти все сообщения от dima85
 
Регистрация: 14.03.2010
Сообщений: 194

Валидатор тегов
Появилась задача сделать условие если в поле есть запятые, то alert('ок') если в поле нет запятых то alert('error').

Насколько я понимаю необходимо сделать цикл который пробежится по нужному полю и проверит каждый символ на совпадение с запятой. Или может с jquery это можно сделать как-то проще?


Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 15.05.2011, 23:50
Аватар для poorking
prodigy
Отправить личное сообщение для poorking Посмотреть профиль Найти все сообщения от poorking
 
Регистрация: 01.11.2010
Сообщений: 503

var str = "123, 123";

	alert("есть ли запятые? - " + (/,/.test(str) ?  "да" : "не"));
__________________
readOnly
Ответить с цитированием
  #3 (permalink)  
Старый 16.05.2011, 00:08
Профессор
Отправить личное сообщение для dima85 Посмотреть профиль Найти все сообщения от dima85
 
Регистрация: 14.03.2010
Сообщений: 194

Ого, шикарно. Честно сказать впервые вижу команды начинающиеся с скобок.
Я немного изменил условие:
(/,/.test($("#tag span").html()) ?  $("#tag i").css("display", "none") : $("#tag i").css("display", "block"));


Все замечательно работает. Но может можно как-то это понятней сделать. Меня очень смущают передние скобки. Как JavaScript понимает что это?

Последний раз редактировалось dima85, 16.05.2011 в 00:12.
Ответить с цитированием
  #4 (permalink)  
Старый 16.05.2011, 00:17
Аватар для poorking
prodigy
Отправить личное сообщение для poorking Посмотреть профиль Найти все сообщения от poorking
 
Регистрация: 01.11.2010
Сообщений: 503

dima85,
эмм.. какие передние скобки?
? : - это условный оператор

Можете сделать так
if(/,/.test(str)){

}else{

}

суть та же.
/,/
- это могучее регулярное выражение, про них тут
Регулярные выражения
и тут
Особенности регулярных выражений
Вместо всего этого можно воспользоваться indexOf методом строк
if(str.indexOf(",") != -1){
 //запятые есть
}else{
 //запятых нет
}

Делайте как считаете нужным, тернарный оператор ухудшает читаемость кода, но делает его короче. Без регулярного выражения тут можно обойтись конечно. Что быстрее работает, indexOf или test я не знаю, но думаю у вас не особо важна такая мелкая оптимизация
UPD
(cond ? expr1 : expr2 )
Тут скобки нужны чтобы отделить одно выражение от другого
если бы было

alert("Привет" + false ? " ya" : " no");

то сами видите, что условие истинно, так как "Привет" + false после приведения к булевому типу == true
alert(Boolean("Привет" + false));

а если
alert("Привет" + (false ? " ya" : " no"));

то то условие ложно и все ок
__________________
readOnly

Последний раз редактировалось poorking, 16.05.2011 в 00:33.
Ответить с цитированием
  #5 (permalink)  
Старый 16.05.2011, 00:22
Профессор
Отправить личное сообщение для dima85 Посмотреть профиль Найти все сообщения от dima85
 
Регистрация: 14.03.2010
Сообщений: 194

Спасибо большое за помощь и за статьи.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вытащить со страницы все значения name и value из тегов <input> qwr938 Общие вопросы Javascript 8 13.02.2011 15:16
Перебор вложенных тегов. werdes jQuery 0 27.07.2010 11:51
Валидатор ругается на onfocus SeregaS (X)HTML/CSS 7 25.02.2010 09:55
Как переместить курсор внутри тегов? alex-v Javascript под браузер 8 29.08.2009 23:07
Изменение css-свойств большОго кол-ва тегов AzriMan Общие вопросы Javascript 2 05.03.2009 15:11