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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> RegExp на все строки 
V
    Опции темы
InfMag
Дата 31.5.2010, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: 2
Всего: 4



Доброго времени суток!

Возникла задача - применить мой RegExp на все строки, не по очереди, а сразу обработать всё одним регом.

Вообще для чего это делается: есть сайт на аяксе, есть страницы при показе которых должен выполняться каждый раз определённый код, страницы кешируются, создаются при запросе для каждой страницы отдельные блоки и скрываются все, кроме активного. Код нужно выполнять каждый раз как показывается блок, при загрузке всё ок, код выполняется, а при показе его выполнять так и так нужно отдельно, есть такой html код:
Код

<script type="text/javascript">
   /*<ajax>*/
   (function($){
      document.title = 'Строительные смеси / Продукция / Сайт ООО «Актив»'
   })(jQuery)
   /*</ajax>*/
</script>

Нужно взять всё между /*<ajax>*/ и /*</ajax>*/, рега по идее такая: 
Код

/\/\*\<ajax\>\*\/(.*)\/\*\<\/ajax\>\*\//i

Ключ m - мультисроковый пробовал, не помогло, вся проблема в том - что дальше текущей строки он за раз никак не уходит.

Это сообщение отредактировал(а) InfMag - 31.5.2010, 09:26
PM   Вверх
InfMag
Дата 31.5.2010, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: 2
Всего: 4



Поправлюсь, забыл добавить вариант перевода строк:
Код

/\/\*\<ajax\>\*\/([.\s]*)/

Но он всё-равно не уходит дальше текущей строки, только захватывает символ перевода строки, не зависимо от наличия или отсутствия ключа m
PM   Вверх
ksnk
Дата 31.5.2010, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


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

Репутация: 84
Всего: 386



Код

/\/\*\<ajax\>\*\/((\n|\r|.)*)\/\*\<\/ajax\>\*\//i

есть свои тараканы у javascaript'а. Модификатор m как-то очень по своему работает...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
InfMag
Дата 31.5.2010, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: 2
Всего: 4



Спасибо, но я нашёл более элегантное решение, правда после неоднократных ударов головой об стену, с начала было так:
Код

/\/\*<ajax>\*\/([^]*?)\/\*<\/ajax>\*\//ig

Nice! Работает, всё прекрасно, но тут вдруг я вспоминаю про мордор, а именно IE, ни в одном ни работает, он думает что я за символ беру ] и просит закрыть промежуток... Ещё несколько ударов об стену и я угодил мордору майкрософту:
Код

/\/\*<ajax>\*\/([^\0]*?)\/\*<\/ajax>\*\//ig


Кстати ключ g + *? (ограничение жадности) дают мне вариант многократно собирать код.

Добавлено через 4 минуты и 42 секунды
А флаг m всецело бесполезен и вообще побочно-ненужный. Хотя правильнее сказать - он делает ровно ничего.
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.