Javascript类似PHPBB的URL标记处理

时间:2009-07-09 09:38:19

标签: javascript regex bbcode

我正在开发一个PHP动态网页,其中包含<textarea>元素,用户可以在<div>元素中“实时”显示文本,只需JavaScript处理文字和标签。

我使用JavaScript regexp将括号(如phpBB样式)中的“b”,“u”和标签更改为HTML等效项,如“strong”,“u”等。

当我需要处理url标记时出现问题,我需要从输入中提取URL,如下所示:

[url=http://...]

如何用以下内容替换:

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

1 个答案:

答案 0 :(得分:0)

这应该有效:

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

应该使用[url=...]中的参数,并禁止任何有趣的商家(<>或空格),将其更改为超链接,使用网址作为目标和链接文字。

这将允许像[url=javascript:while(1)alert('Boo!')]这样的内容,它会产生一个链接,当点击它时,会真正惹恼用户 - 你必须添加一些消毒过滤来阻止这样的事情。