@newaitix

Замена ссылок на элемент a?

Помогите не могу понять почему не заменяет не все ссылки
Нужно из ссылки в тексте сделать тег с href url ссылки и текстом url ссылки.
По итогу должно поучиться
"текст текст текст текст текст <a href="mandarin.bike">mandarin.bike</a> текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст <a href="https://ardis-bike.com.ua/ru/">https://ardis-bike.com.ua/ru/</a>"

var text='текст текст текст текст текст mandarin.bike текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст https://ardis-bike.com.ua/ru/';
var textResult=text.match(/(http(s)?:\/\/)?(www\.)?([-.a-z0-9]+)\.([a-z]+)([-$_.,+=:;/?@&#%a-z0-9]+)?(\/|\b)/gi);
if(textResult==null)
    textResult=text;
else
	if(textResult.length>1)
		for(var i=0;i<textResult.length;i++)
			textResult=text.replace(textResult[i],'<a href="'+textResult[i]+'">'+textResult[i]+'</a>');
	else
		textResult=text.replace(textResult[0],'<a href="'+textResult[0]+'">'+textResult[0]+'</a>');
  • Вопрос задан
  • 133 просмотра
Решения вопроса 1
l3ftoverz
@l3ftoverz Куратор тега JavaScript
Люблю Финский металкор
const output = text.replace(expression, match => `<a href="http://${match.replace(/(https?\:\/\/)/g, "")}">${match}</a>`);


Где:
youText - твой текст.
expression - регулярка для поиска.

Единственное, <a href="mandarin.bike"> невалидный адрес, протокола нет, браузер нормально не откроет сайт. Нужно добавить вырезание протокола и подставку явно, чтобы протокол был всегда, что я уже сделал.

Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы