Задать вопрос

Как в регулярку добавить условие?

Обрабатываю ссылки в тексте с помощью регулярки и возникла потребность обрабатывать только ссылки на внутренний ресурс. Как сделать такую проверку ?

Ссылки в тексте такого вида [Название](Ссылка)

Что имею:
<p dangerouslySetInnerHTML={{
	__html: text.replace(
		/\[(.+?)\]\((.+?)\)/g,
		'$2'.indexOf('site')
			? '<a href="$2" target="_blank">$1</a>'
			: '$1'
	),
	}}
></p>
  • Вопрос задан
  • 79 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
veselov4nton
@veselov4nton
Системный администратор.
Ты на правильном пути, но .replace() сам по себе не даст тебе гибко проверить href — потому что в $2 ты не можешь заинлайнить условие как в JS.

Используй функцию-замену вместо строки:
__html: text.replace(/\[(.+?)\]\((.+?)\)/g, (match, title, url) => {
return url.includes('site')
? `${title}`
: title;
}),
}} />
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
NeiroNx
@NeiroNx
Программист
Написать в регулярку часть ссылки до нужных ресурсов.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
Wanted. Санкт-Петербург
До 450 000 ₽
ПРОДИС.НДТ Малаховка, пгт
от 70 000 ₽
Wanted. Санкт-Петербург
До 120 000 ₽