Я пытаюсь использовать регулярное выражение для замены изображений, видео и других URL-адресов, которые появляются в виде сообщений. Я думал, что все работает, но я столкнулся с проблемой с последним случаем замены URL-адресов, таких как www.google.com. Теперь он добавляет localhost: 3000 в начало этого URL-адреса. Я не лучший с регулярным выражением, но похоже, что регулярное выражение работает в HTML, так как href является www.google.com. Кто-нибудь может понять, где это происходит?Javascript Regex url replace
var image_url = /([a-z\-_0-9\/\:\.]*\.(jpg|jpeg|png|gif))/i;
var message = text.replace(image_url,'<a href="$1" target="_blank"><img width=100px height=100px src="$1"/></a>')
var video_url = /([a-z\-_0-9\/\:\.]*\.(mp4|webm|ogg))/i;
message = message.replace(video_url,'<a href="$1" target="_blank"><video src="$1"></video></a>')
var exp_url = /(?:^|[^"'])(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})/gi;
message = message.replace(exp_url,'<a href="$1" target="_blank">$1</a>')
Не совсем понимаю проблему ... можете ли вы разместить немного больше кода? В частности, какова ценность переменной «text»? –
текст - это сообщение, отправленное пользователем, так что это может быть что угодно. Задача этой функции - проверить, является ли это изображением, видео или URL-адресом и заменить его правильным тегом. Первые два, кажется, работают правильно, но последний хочет добавить localhost: 3000 в начало его –
Если проблема только в последней, можете ли вы уменьшить вопрос только до этого? Кажется ненужным мы смотрим на часть кода, который работает. – trincot