Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Регулярные выражения в JS, много чего не хватает 
:(
    Опции темы
S.A.P.
Дата 17.3.2006, 00:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 8
Всего: 71



Тут обратил внимание на регулярные выражения в JavaScript и обнаружил, что синтаксис в них довольно скудный.

Конкренто в данный момент мне не хватает "соответсвия с заглядыванием назад" пример из доки по PHP:
(?<!foo)bar
(?<=bullock|donkey)

Есть ли какая альтернатива? Или все же такая фича JS RegExp присутствует?
PM MAIL   Вверх
Ciber SLasH
Дата 17.3.2006, 01:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Цитата(S.A.P. @ 17.3.2006, 00:51 Найти цитируемый пост)
мне не хватает "соответсвия с заглядыванием назад"

До, такого тогда видимо ещё не додумались, хоть это можно реализовать с помощью "Условных подмасок":
no(?!foo)bar
no(?!foo|fee)bar
PM   Вверх
S.A.P.
Дата 17.3.2006, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 8
Всего: 71



Ciber SLasH, а реально с помощью них составить что - то аналогичное (?<!foo)bar, только обязательно без захвата и запоминания?
PM MAIL   Вверх
Alx
Дата 17.3.2006, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



S.A.P., а что это означает?


--------------------
PM MAIL WWW ICQ   Вверх
S.A.P.
Дата 17.3.2006, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 8
Всего: 71



(?<!foo)bar - это означает, что ищется строка bar, которой не предшествует строка foo, при этом в результирующую строку должна попасть только строка bar.
PM MAIL   Вверх
Ciber SLasH
Дата 17.3.2006, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Цитата(Ciber SLasH @ 17.3.2006, 01:37 Найти цитируемый пост)
no(?!foo)bar

Это и означает, что ищется строка nobar, в которой перед bar нету foo и (?!foo) — это незахватывающие скобки.
PM   Вверх
S.A.P.
Дата 18.3.2006, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 8
Всего: 71



Ciber SLasH, этот способ не подходит, т.к. (?!foo)bar найдет bar даже в том случае, если ему предшествует foo.
PM MAIL   Вверх
Ciber SLasH
Дата 19.3.2006, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Цитата(S.A.P. @ 18.3.2006, 11:18 Найти цитируемый пост)
(?!foo)bar найдет bar даже в том случае, если ему предшествует foo.

Он не найдёт bar если писать шаблон с начала строки, т.е. ^(?!foo)bar
или, если перед (?!foo)bar написать ещё какое-нить условие, например строка ничинается с gogo, тогда будет правильно работать шаблон gogo(?!foo)bar
PM   Вверх
S.A.P.
Дата 19.3.2006, 01:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 8
Всего: 71



Ciber SLasH, вот тут мы и приплыли smile . Мне нужен незахватывающий поиск, а любое включение перед (?!foo) захватит всю строку...

В принципе с сабжем все ясно, мало чтоли недостатков в JS smile)) . Придется как вегда настраивать hands.sys smile .
PM MAIL   Вверх
Ciber SLasH
Дата 19.3.2006, 03:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Цитата(S.A.P. @ 19.3.2006, 01:23 Найти цитируемый пост)
Мне нужен незахватывающий поиск

(?!foo) — это незахватывающие скобки.

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0493 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.