【问题标题】:Regex to convert BBCode link to HTML link正则表达式将 BBCode 链接转换为 HTML 链接
【发布时间】:2016-07-06 08:14:29
【问题描述】:

我使用的是 TinyMCE 4.4,其中内容源是 HTML 和 BBCode。用户可以在 BBCode 视图中插入链接并转换为 HTML。

例如 BBCode 链接:[url href=http://test.com]test[/url],我需要正则表达式,它将转换为相应的 HTML 链接。

TinyMCE BBCode 插件中有下面几行,但它似乎不起作用。

rep(/\[url=([^\]]+)\](.*?)\[\/url\]/gi, "<a href=\"$1\">$2</a>");
rep(/\[url\](.*?)\[\/url\]/gi, "<a href=\"$1\">$1</a>");

理想情况下,Regex 应该将上面的 BBCode 链接转换为 &lt;a href="http://test.com"&gt;test&lt;/a&gt;,但它也应该处理复杂的 URL(带有查询字符串参数)。

有什么想法可以做到吗?

【问题讨论】:

    标签: regex tinymce-4


    【解决方案1】:

    问题是您的 BBCode 错误。它应该没有href= 只是url=

    [url=http://test.com]test[/url]
    

    那么正则表达式应该正确地完成他们的工作。

    正则表达式:/[url=([^]]+)](.*?)[\/url]/gi, "&lt;a href=\"$1\"&gt;$2&lt;/a&gt;" 适用于[url=http://test.com]some plain text[/url]的情况

    正则表达式/[url](.*?)[\/url]/gi, "&lt;a href=\"$1\"&gt;$1&lt;/a&gt;" 用于[url]http://test.com[/url] 的情况

    action here

    【讨论】:

    • 感谢您的澄清。你是真的。我可以知道两个正则表达式之间的区别或两者的例子吗?正则表达式1 - rep(/[url=([^]]+)](.*?)[\/url]/gi, "$2");和 Regex2 - rep(/[url](.*?)[\/url]/gi, "$1");
    • 更新了答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-23
    • 2011-08-21
    • 1970-01-01
    相关资源
    最近更新 更多