Est-il un moyen d'utiliser la correspondance ungreedy en JavaScript pour les expressions régulières?

StackOverflow https://stackoverflow.com/questions/364014

Question

Je me demande s'il y a un moyen d'utiliser la correspondance ungreedy en JavaScript? J'ai essayé U modificateur, mais il ne semble pas fonctionner.

Je veux écrire un petit analyseur BBCode en JavaScript, mais sans correspondance ungreedy il est impossible (au moins autant que je le vois) de faire quelque chose comme ceci:

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

Mais un tel remplacement serait bien car il n'y a pas besoin de vérifier la validité HTML alors. Unclosed resteront marges bénéficiaires du texte simple.

Était-ce utile?

La solution

Vous pouvez utiliser après ? ou * pour le rendre + ungreedy, par exemple (.*?)

Autres conseils

Je suis en retard, mais je posterai la regex de toute façon.

'[b]one[/b] two [b]three[/b]'.replace( /\[b\](.+?)\[\/b\]/g, '<b>$1</b>' );
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top