Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.01.2014, 11:58
Новичок на форуме
Отправить личное сообщение для schtromm Посмотреть профиль Найти все сообщения от schtromm
 
Регистрация: 27.01.2014
Сообщений: 8

Как вырезать все комментарии <!-- ... --> регуляркой
Всех приветствую.

Возникла проблема с написанием регулярного выражения на Javascript.

Есть некий HTML-код, в котором встречаются комментарии в формате <!-- ... -->. Необходимо вырезать все эти комментарии.

К сожалению, мой опыт в PHP не помог - регулярные выражения на Javascript совсем другие. Чтение документации толку тоже не дало, там написано все каким-то нечеловеческим языком. Во всяком случае, я так и не смог понять, как описать регулярное выражение, берущее любой текст между такими-то и такими-то фрагментами. Простейшая конструкция, на PHP описывается выражением ".*?". На Javascript не смог сделать.

В результате экспериментов у меня нарисовалась такая конструкция:
d = d.replace(/<!--[^]*-->/g,'');

Но она заменяет весь текст от первого открывающего "<!--" до последнего закрывающего "-->". То есть, по сути удаляет вообще все. А мне надо, чтобы заменяло от первого открывающего "<!--" до ближайшего закрывающего "-->".

Прошу помочь.
Спасибо.

Последний раз редактировалось schtromm, 27.01.2014 в 12:26.
Ответить с цитированием
  #2 (permalink)  
Старый 27.01.2014, 12:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

schtromm,
Особенности регулярных выражений в Javascript
Жадность
Ответить с цитированием
  #3 (permalink)  
Старый 27.01.2014, 12:48
Новичок на форуме
Отправить личное сообщение для schtromm Посмотреть профиль Найти все сообщения от schtromm
 
Регистрация: 27.01.2014
Сообщений: 8

Ага, спасибо, сейчас изучу.
Скажите плз, а вот это "[^]*" - он правильно описывает нужную задачу, то есть вообще любой текст с переносами?
Ответить с цитированием
  #4 (permalink)  
Старый 27.01.2014, 12:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

schtromm,
var reg = /<!--([\s\S]*?)-->/mig
Ответить с цитированием
  #5 (permalink)  
Старый 27.01.2014, 13:25
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

schtromm, можешь в Sublime Text или Notepad++ замену произвести. В этих редакторах есть поддержка регулярок. Я правильно понял что тебе по исходнику нужно пройтись с заменой?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #6 (permalink)  
Старый 27.01.2014, 14:14
Новичок на форуме
Отправить личное сообщение для schtromm Посмотреть профиль Найти все сообщения от schtromm
 
Регистрация: 27.01.2014
Сообщений: 8

Сообщение от рони Посмотреть сообщение
schtromm,
var reg = /<!--([\s\S]*?)-->/mig
Урр-ра, заработало!

Большое спасибо, рони.
Ответить с цитированием
  #7 (permalink)  
Старый 27.01.2014, 14:17
Новичок на форуме
Отправить личное сообщение для schtromm Посмотреть профиль Найти все сообщения от schtromm
 
Регистрация: 27.01.2014
Сообщений: 8

Сообщение от danik.js Посмотреть сообщение
schtromm, можешь в Sublime Text или Notepad++ замену произвести. В этих редакторах есть поддержка регулярок. Я правильно понял что тебе по исходнику нужно пройтись с заменой?
Нет, это для скрипта чистки HTML от вордовского мусора. Скрипт я нашел, везде работает нормально, но Firefox при вставке из Word добавляет свой мусор в виде комментариев, которые дополнительно надо чистить. Вот, собственно, эта строка для этого и нужна.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как проверить загружены ли все картинки браузером Aderba jQuery 13 29.05.2014 14:18
У меня на компе около 1000 шрифтов и все почти одинаковые, как быть? megaupload Оффтопик 81 12.05.2014 11:03
Как запустить функцию, только если выполнились все события, на которые она подписана Shitbox2 jQuery 4 05.03.2013 10:40
Как скачать все картинки из страницы? ntest Общие вопросы Javascript 0 26.02.2013 13:51
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37