В настоящее время я пытаюсь преобразовать это:
[url=http://example.com] this is a link [/url]
к стандартной ссылке html:
<a href=http://example.com>this is a link</a>
Пока я могу преобразовать строку url в ссылку, однако [url=] [/url]
все еще остается, и я не уверен, как его отфильтровать.
message.replace(/(\b(https?):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig, "<a href='$1'>$1</a>")
Как я могу отфильтровать [url=] [/url]
в регулярном выражении, а также убедиться, что this is a link
(текст, определенный пользователем) также остается?
Вам просто нужно добавить его в regex для замены:
message.replace(/\[url=(\b(https?):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])\]/ig, "<a href='$1'>$1</a>")
^^^^^^
Хотя у вас все еще есть последний тег url, и вы можете упростить работу с отмененными классами:
message.replace(/\[url=([^\]]+)\]\s*(.*?)\s*\[\/url\]/ig, "<a href='$1'>$2</a>")
EDIT: сделал закрывающий тег буквальным из-за потенциальных других тегов
Я бы сделал это в 3 этапа:
[url=
с <a href="
[/url]
на </a>
]
с помощью ">
Но это просто мнение. Мне обычно нравится держать его простым и переходить к следующей проблеме.