将 BBCode link 转换为 HTML link 的正则表达式

Regex to convert BBCode link to HTML link

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

例如 BBCode link: [url href=http://test.com]test[/url], 我需要正则表达式将转换为根据 HTML link.

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

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

理想情况下,正则表达式应将 BBCode link 以上转换为 <a href="http://test.com">test</a>,但它也应处理复杂的 URL(带有查询字符串参数)。

有什么想法可以做到吗?

问题是你的BBCode不对。它应该没有 href= 只是 url=

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

然后正则表达式应该正确地完成它们的工作。

正则表达式:/[url=([^]]+)](.*?)[\/url]/gi, "<a href=\"\"></a>"适用于案例[url=http://test.com]some plain text[/url]

正则表达式 /[url](.*?)[\/url]/gi, "<a href=\"\"></a>" 用于大小写 [url]http://test.com[/url]

action here中查看