【问题标题】:Javascript PHPBB-like URL tag processingJavascript PHPBB-like URL标签处理
【发布时间】:2009-07-09 09:38:19
【问题描述】:

我正在开发一个 PHP 动态网页,它有一个 <textarea> 元素,允许用户编写文本并让它在 <div> 元素中“实时”显示,只需 JavaScript 处理文本和标签。

我使用 JavaScript 正则表达式将“b”、“u”和括号之间的标签(如 phpBB 样式)更改为它们的 HTML 等价物,如“strong”、“u”等。

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

[url=http://...]

如何替换为:

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

【问题讨论】:

    标签: javascript regex bbcode


    【解决方案1】:

    这应该可行:

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

    这应该采用[url=...] 中的参数,并且除非有任何有趣的业务(&lt;&gt; 或空格),否则将其更改为超链接,使用 URL 作为目标和链接文本。

    这将允许[url=javascript:while(1)alert('Boo!')] 之类的东西,它会产生一个链接,当点击该链接时,用户会非常恼火——你必须添加一些净化过滤来阻止类似的东西。

    【讨论】:

    • 太棒了。我刚刚注意到我没有将双引号字符 ( " ) 添加到不允许的字符列表中 - 我建议将其挤压进去,这样标签链接就不会提前结束并搞砸了。我添加了现在将其放入正则表达式中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-23
    • 1970-01-01
    • 2012-09-27
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多