Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a way to use ungreedy matching in JavaScript for regular expressions?

Tags:

I wonder if there is a way to use ungreedy matching in JavaScript? I tried the U modifer, but it doesn't seem to work.

I want to write a small BBCode parser in JavaScript, but without ungreedy matching it isn't possible (at least as far as I see it) to do something like this:

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

But such a replacement would be nice since there is no need to check for HTML validity then. Unclosed markups will stay simple text.

like image 435
okoman Avatar asked Dec 12 '08 20:12

okoman


1 Answers

You can use ? after * or + to make it ungreedy, e.g. (.*?)

like image 80
Greg Avatar answered Sep 18 '22 05:09

Greg