Ist es möglich, Flags in einer vorhandenen RegExp zu ändern?

9

Mein Code erhält ein RegExp-Objekt (außerhalb meiner Kontrolle). Es ist nicht global, aber ich muss es sein.

Im Moment mache ich das:

%Vor%

... weil ich keinen anderen Weg finde.

  • regex.global hat keinen Setter.
  • regex.compile(new_pattern) ist veraltet zugunsten von new RegExp(new_pattern)
  • regex.flags ist keine Sache

Gibt es einen besseren Weg, dies zu tun?

    
Julian TF 07.05.2015, 11:56
quelle

3 Antworten

2

Ich fürchte, die Antwort lautet "Nein".

Es gibt keine Möglichkeit, die Flags in einer vorhandenen Regex zu ändern. Was du machst, scheint der sauberste Weg zu sein.

Sie könnten (möglicherweise) die optionalen Flags etwas verkürzen:

%Vor%     
Cerbrus 07.05.2015, 12:10
quelle
2

Sie können dies jetzt in ES6 tun. Mit "dies" meine ich nicht, die Flags einer existierenden Regexp zu modifizieren, sondern stattdessen eine neue Regexp von einer existierenden zu erstellen, die ihre Flags ersetzt oder modifiziert. Siehe Ссылка . Beispiel aus diesem Post:

%Vor%     
user663031 24.11.2015 04:32
quelle
0

Obwohl Sie die Flags eines vorhandenen RegExp nicht ändern können, können Sie ein neues mit modifizierten Flags erstellen. Eine nette Option ist die Verwendung von YourJS.flagRegExp() :

%Vor%

Die API-Dokumentation finden Sie hier . Sie können Ihre eigene JS-Bibliothek mit allen anderen Funktionen Ihres Projekts anpassen.

    
Chris West 24.11.2015 04:20
quelle

Tags und Links