我想知道是否有办法在JavaScript中使用ungreedy匹配?我尝试了U modifer,但它似乎不起作用。
我想在JavaScript中编写一个小的BBCode解析器,但是如果没有ungreedy匹配,就不可能(至少就我看来这样)做这样的事情:
'[b]one[/b] two [b]three[/b]'.replace( /\[b\](.*)\[\/b\]/, '<b>$1</b>' );
但是这样的替换会很好,因为那时不需要检查HTML有效性。未封闭的标记将保留简单的文本。
答案 0 :(得分:26)
您可以在?
或*
后+
使用(.*?)
,例如{0}} {{1}}
答案 1 :(得分:2)
我迟到了,但无论如何我都会发布正则表达式。
'[b]one[/b] two [b]three[/b]'.replace( /\[b\](.+?)\[\/b\]/g, '<b>$1</b>' );