JavaScript解析bbcode网址

时间:2014-01-04 18:20:17

标签: javascript regex bbcode

我一直试图在JavaScript中解析bbcode URL标记。

例如,

[url=http://examp.le]linktext[/url]

应该成为

<a href="http://examp.le">linktext</a>. 

我对此进行了大量研究,并对正则表达式有了深刻的理解。 所以问题是,我该怎么做?

1 个答案:

答案 0 :(得分:5)

你可以试试这个正则表达式:

\[url=([^\s\]]+)\s*\](.*(?=\[\/url\]))\[\/url\]

Regular expression visualization

Debuggex Demo

因此,在JavaScript中,您可以使用以下内容:

text = text.replace(/\[url=([^\s\]]+)\s*\](.*(?=\[\/url\]))\[\/url\]/g, '<a href="$1">$2</a>')

jsFiddle demo

如果你想解析短格式

[url]http://ya.ru[/url]

必须转换为

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

您需要以下正则表达式:

\[url\](.*(?=\[\/url\]))\[\/url\]

Regular expression visualization

Debuggex Demo

以及相应的JavaScript:

 text = text.replace(/\[url\](.*(?=\[\/url\]))\[\/url\]/g, '<a href="$1">$1</a>')