Javascript PHPBB-подобная обработка тегов URL - PullRequest
0 голосов
/ 09 июля 2009

Я работаю над динамической веб-страницей PHP, в которой есть элемент <textarea>, который позволяет пользователю писать текст и отображать его в «реальном времени» в элементе <div>, просто обрабатывая текст и теги с помощью JavaScript.

Я заменяю "b", "u" и теги в скобках (например, стиль phpBB) на их эквиваленты HTML, такие как "strong", "u" и т. Д., Используя регулярные выражения JavaScript.

Проблема возникает, когда мне нужно обработать тег url, где мне нужно извлечь URL из ввода, который выглядит примерно так:

[url=http://...]

Как я могу заменить это на:

<a href="http://...">

1 Ответ

0 голосов
/ 09 июля 2009

Это должно работать:

str.replace(/\[url=([^\s"<>\]]+)\]/gi, '<a href="$1">$1</a>');

Это должно принимать параметры в [url=...] и, за исключением любого забавного бизнеса (<, > или пробелов), изменить его на гиперссылку, используя URL как в качестве места назначения, так и текста ссылки.

Это разрешит такие вещи, как [url=javascript:while(1)alert('Boo!')], которые будут давать ссылку, которая, при нажатии, будет действительно раздражать пользователя - вам придется добавить некоторую дезинфицирующую фильтрацию, чтобы блокировать подобные вещи.

...