2016-07-06 133 views
1

我使用的是TinyMCE 4.4,其中內容源是HTML和BBCode。用戶可以在BBCode視圖中插入鏈接並將其轉換爲HTML。將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>"); 

理想的情況下,正則表達式應該上面的BBCode鏈接轉換爲<a href="http://test.com">test</a>但應該處理複雜的URL(查詢字符串PARAMS)爲好。

任何想法我能做到嗎?

回答

0

問題是您的BBCode錯了。它應該是沒有href=只是url=

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

那麼正則表達式應該正確地做他們的工作。

正則表達式:/[url=([^]]+)](.*?)[\/url]/gi, "<a href=\"$1\">$2</a>"適用於正則表達式/[url](.*?)[\/url]/gi, "<a href=\"$1\">$1</a>"用於情況[url]http://test.com[/url]

看到它在action here

+0

感謝澄清的情況下[url=http://test.com]some plain text[/url]

。你是真的。我可以知道兩個正則表達式之間的區別還是兩者的例子? Regex1 - rep(/ \ [url =([^ \]] +)\](。*?)\ [\/url \]/gi,「$2」); Regex2 - rep(/ \ [url \](。*?)\ [\/url \]/gi,「$1」); –

+1

更新了答案 – Matyas

+0

感謝Matyas的信息。 –