Gibt es eine Möglichkeit ungreedy Matching in JavaScript für reguläre Ausdrücke zu verwenden?

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

Frage

Ich frage mich, ob es einen Weg gibt ungreedy Matching in JavaScript zu benutzen? Ich versuchte, den U Modifikator, aber es scheint nicht zu funktionieren.

Ich möchte einen kleinen BBCode-Parser in JavaScript schreiben, aber ohne ungreedy Anpassung ist es nicht möglich (zumindest soweit ich es sehen), so etwas zu tun:

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

Aber ein solcher Austausch wäre schön, da es keine Notwendigkeit für HTML Gültigkeit zu überprüfen ist, dann. Unclosed Markups wird einfacher Text bleiben.

War es hilfreich?

Lösung

Sie können ? nach * oder + verwenden, um es ungreedy zu machen, z.B. (.*?)

Andere Tipps

Ich bin spät dran, aber ich werde die Regex sowieso veröffentlichen.

'[b]one[/b] two [b]three[/b]'.replace( /\[b\](.+?)\[\/b\]/g, '<b>$1</b>' );
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top