Wie schließe ich einen Inline-Kommentar in einen regulären Ausdruck in JavaScript ein?

8

Inline-Kommentare funktionieren, wenn ein String an den RegExp-Konstruktor übergeben wird:

%Vor%

aber nicht mit einem Ausdruck. Gibt es in JavaScript eine Entsprechung oder Alternative, um x-mode für das RegExp-Objekt?

    
Paul Sweatte 16.11.2012, 20:29
quelle

2 Antworten

9

Javascript unterstützt weder den Modifikator x noch die Inline-Kommentare (?#comment) . Siehe hier.

Ich schätze, das Beste, was Sie tun können, ist, den RegExp -Konstruktor zu verwenden und jede Zeile in eine separate Zeichenfolge zu schreiben und sie zu verketten (mit Kommentaren zwischen den Strings):

%Vor%     
Martin Ender 16.11.2012, 20:32
quelle
2

Anders als die Verwendung eines Unterausdrucks der Länge null ist dies nicht möglich. Beispiele für "Kommentare":

%Vor%

(?!..) ist eine negierte Vorausschau. Es stimmt überein, wenn dem vorherigen nicht die Zeichenfolge innerhalb der Klammern folgt. Da die Sache zwischen (?! und ) ein echter regulärer (Sub-) Ausdruck ist, können Sie keine beliebigen Zeichen verwenden, es sei denn, sie werden mit einem umgekehrten Schrägstrich versehen.

Eine Alternative ist die positive Vorausschau:

%Vor%

Diese Vorausschau wird immer übereinstimmen, weil offensichtlich auf die a-z auch eine leere Zeichenfolge folgt.

    
Rob W 16.11.2012 20:31
quelle