有没有办法在JavaScript中使用ungreedy匹配正则表达式?

时间:2008-12-12 20:22:18

标签: javascript regex bbcode non-greedy

我想知道是否有办法在JavaScript中使用ungreedy匹配?我尝试了U modifer,但它似乎不起作用。

我想在JavaScript中编写一个小的BBCode解析器,但是如果没有ungreedy匹配,就不可能(至少就我看来这样)做这样的事情:

'[b]one[/b] two [b]three[/b]'.replace( /\[b\](.*)\[\/b\]/, '<b>$1</b>' );

但是这样的替换会很好,因为那时不需要检查HTML有效性。未封闭的标记将保留简单的文本。

2 个答案:

答案 0 :(得分:26)

您可以在?*+使用(.*?),例如{0}} {{1}}

答案 1 :(得分:2)

我迟到了,但无论如何我都会发布正则表达式。

'[b]one[/b] two [b]three[/b]'.replace( /\[b\](.+?)\[\/b\]/g, '<b>$1</b>' );