Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.09.2011, 12:17
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 15.12.2009
Сообщений: 742

регулярка не верно работает
вот тут обнаружил толи баг толи фишку регулярок.
str = '.class[.prop][.prop2]';
	re = /(?:\[[^\]]*\])*(\.\w+)?/g
	A = re.exec(str);
	alert(A);
	A = re.exec(str);
	alert(A); // здесь хочу null


C чем се связано? Тест в ФФ

Логика: пропускаем не нужное, цепляем нужное. Если условие не проходит - null
__________________
Настоящий программист думает и осознает сам решение задачи, а не копирует другие мысли, не осознавая их (c)
Относись к человеку так же, как хотелось бы отношения к себе (с)
Все нужно там, где оно нужно, а все не нужно нигде (с) Gozar
B~Vladi: А кто такой JavaScript стрелок?! micscr: это тот, кто не jQuery танкист.
Программы становятся медленнее быстрее, чем компьютеры становятся быстрее (с) Никлаус Вирт

Последний раз редактировалось PeaceCoder, 27.09.2011 в 12:42.
Ответить с цитированием
  #2 (permalink)  
Старый 26.09.2011, 12:25
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сначала нашёл .class, потом нашёл .prop. Всё правильно.
Ответить с цитированием
  #3 (permalink)  
Старый 26.09.2011, 12:31
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

Так ?: слйчайно не значит "нежадный поиск"?
Ответить с цитированием
  #4 (permalink)  
Старый 26.09.2011, 12:34
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

?: значит не сохранять найденное в скобках. Такая оптимизация, когда скобки нужны, а выражение в них не нужно.
Ответить с цитированием
  #5 (permalink)  
Старый 27.09.2011, 12:41
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 15.12.2009
Сообщений: 742

Баг нашел. Дело в том, что там стояло обязательное условие на последнее выражение, и система вычислила его. Но надо было не это. Сейчас переправил регулярку. Работает верно. А можно сделать так чтобы если в последнего выражения нет то выдавался null. Логика: пропускаем не нужное, цепляем нужное. Если условие не проходит - null
__________________
Настоящий программист думает и осознает сам решение задачи, а не копирует другие мысли, не осознавая их (c)
Относись к человеку так же, как хотелось бы отношения к себе (с)
Все нужно там, где оно нужно, а все не нужно нигде (с) Gozar
B~Vladi: А кто такой JavaScript стрелок?! micscr: это тот, кто не jQuery танкист.
Программы становятся медленнее быстрее, чем компьютеры становятся быстрее (с) Никлаус Вирт
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает код внутри циклов DZHETIGAPA Events/DOM/Window 1 21.06.2011 01:03
Странно работает регулярка в JS _axl Общие вопросы Javascript 12 11.03.2011 23:39
ява-скрипт выборочно работает-не работает zeta777 Internet Explorer 0 20.01.2010 11:41
Динамическая HTML форма (FireFox - работает, IE - не работает) dm1tr1y Общие вопросы Javascript 10 11.12.2009 15:59
Регулярка работает через раз. Andrej_2 Общие вопросы Javascript 17 17.05.2009 15:15