Соответствие URL, которые НЕ имеют определенного префикса - PullRequest
0 голосов
/ 06 октября 2011

я сопоставляю URL изображения внутри строки со следующим регулярным выражением в javascript:

/\b(https?|ftp|file):\/\/[\-A-Z0-9+&@#\/%?=~_|!:,.;]*[\-A-Z0-9+&@#\/%=~_|]?(\.(jpe?g|png|gif))/ig

с функцией String.replace, я оборачиваю все совпадения внутри -tag.

inвторой шаг, который я хотел бы сопоставить со всеми URL, которые не имеют вышеуказанные расширения файлов в качестве префикса.Моим первым намерением было использовать оператор?! - вот так:

/\b(https?|ftp|file):\/\/[\-A-Z0-9+&@#\/%?=~_|!:,.;]*[\-A-Z0-9+&@#\/%=~_|]?(?!\.(jpe?g|png|gif))/ig

К сожалению, это не работает.пробовал разные варианты этого выражения, но с результатами.

спасибо за любую помощь заранее, Мануэль

1 Ответ

0 голосов
/ 06 октября 2011

Поскольку вы спрашиваете о javascript, я думаю, что-то вроде этого может помочь:

var url_re = "\\b(https?|ftp|file):\\/\\/[\\-A-Z0-9+&@#\\/%?=~_|!:,.;]*[\\-A-Z0-9+&@#\\/%=~_|]?"
var re = new RegExp( "^(?!.*"+url_re+"\.(jpe?g|png|gif)).*"+url_re+"\.[a-z0-9_]+" , 'gi' )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...