Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.11.2011, 16:35
Аспирант
Отправить личное сообщение для nule Посмотреть профиль Найти все сообщения от nule
 
Регистрация: 03.11.2011
Сообщений: 42

Помогите "допилить" регулярку.
Здравствуйте!
Вот такая регулярка для поиска текстовых ссылок на определенные сайты:
Код:
/((?:https?\:\/\/)*w*\.*(?:imdb|nfomation|youtube|nfo\.sceper)\.[\w\d:#@%/;$()~_?\+-=\\\.&]*)/gi;
Но иногда за текстом ссылки без пробела следует тег <br \>, либо <!--
Естественно, теги прилипают к ссылке.
Пробовал добавить в конец регулярки [^(?:<br)|(?:<\!\-\-] - не работает. (?=(?:<br //>)) - тоже не работает.
Подскажите, пожалуйста, как сделать?
Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 16.11.2011, 16:59
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Какого типа ссылки надо найти? Приведите примеры, чем больше, тем лучше. Насколько я понял, к тому же, надо их разделять по частям - отдельно протокол, отдельно домен, отдельно querystring и т.д.?
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #3 (permalink)  
Старый 16.11.2011, 17:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

nule,
Вариант...
var a = 'http://youtube.ru/<br>', 
     s = a.replace(/((?:https?\:\/\/)*w*\.*(?:imdb|nfomation|youtube|nfo\.sceper)\.[^<\s$]*)/gi, ""); 
alert(s)
Ответить с цитированием
  #4 (permalink)  
Старый 16.11.2011, 18:53
Аспирант
Отправить личное сообщение для nule Посмотреть профиль Найти все сообщения от nule
 
Регистрация: 03.11.2011
Сообщений: 42

Сообщение от trikadin Посмотреть сообщение
Какого типа ссылки надо найти? Приведите примеры, чем больше, тем лучше. Насколько я понял, к тому же, надо их разделять по частям - отдельно протокол, отдельно домен, отдельно querystring и т.д.?
Разделять не требуется. Регулярка в таком виде находит все нужные мне ссылки, к этому претензий нет. Единственная недоработка проявляется в случае, когда за ссылкой без пробела следует закрывающий тег <br />. Тогда результатом является "ссылка<br". Надо, чтобы регулярка прекращала обработку, дойдя до "<br".

Сообщение от рони Посмотреть сообщение
nule,
Вариант...
var a = '<a href="http://clcstatistic.gofreeserve.com/install.php?go_uri=http://youtube.ru/<br>'"target="newtab">http://youtube.ru/<br>'</a>, 
     s = a.replace(/((?:https?\:\/\/)*w*\.*(?:imdb|nfomation|youtube|nfo\.sceper)\.[^<\s$]*)/gi, ""); 
alert(s)
Вариант, но пока надеюсь проще сделать, без "ампутации"
Ответить с цитированием
  #5 (permalink)  
Старый 16.11.2011, 19:35
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

А можно я её чуток перепишу?

str= "https://www.youtube.com?bla=true\\lla%@12300&bulab=567#page=11<br>";

reg= /(?:https?:\/\/)?w*\.?(?:imdb|nfomation|youtube|nfo\.sceper)\.[\w\d:#@%/;\$()\\~=\?\+-\.&]*/gi

alert(str.match(reg));
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #6 (permalink)  
Старый 16.11.2011, 19:59
Аспирант
Отправить личное сообщение для nule Посмотреть профиль Найти все сообщения от nule
 
Регистрация: 03.11.2011
Сообщений: 42

Сообщение от trikadin Посмотреть сообщение
А можно я её чуток перепишу?

str= "<a href="http://clcstatistic.gofreeserve.com/install.php?go_uri=https://www.youtube.com?bla=true\\lla%@12300&bulab=567#page=11<br>"target="newtab">https://www.youtube.com?bla=true\\lla%@12300&bulab=567#page=11<br></a>";

reg= /(?:https?:\/\/)?w*\.?(?:imdb|nfomation|youtube|nfo\.sceper)\.[\w\d:#@%/;\$()\\~=\?\+-\.&]*/gi

alert(str.match(reg));
У меня было +-=, а это диапазон символов, включающий в себя <.
Спасибо!
Ответить с цитированием
  #7 (permalink)  
Старый 16.11.2011, 20:05
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от nule
У меня было +-=, а это диапазон символов, включающий в себя <.
Спасибо!
Ахах! Надо было просто заслешить минус.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)

Последний раз редактировалось trikadin, 16.11.2011 в 20:10.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПОМОГИТЕ!!! JavaScript aktau07 Общие вопросы Javascript 9 03.10.2011 23:10
Помогите с replace! faforty Общие вопросы Javascript 2 28.08.2011 13:10
ПОМОГИТЕ с установкой 2 javascript- ов Рашид Общие вопросы Javascript 3 17.11.2010 16:19
Помогите! Многоуровневые вкладки! sergeeeeee Элементы интерфейса 2 02.08.2010 23:50
Помогите написать скрипт для корзины Deep Элементы интерфейса 1 19.06.2010 14:46