Frage Einfügen einer Zeichenfolge in eine vorhandene RegExp in Javascript? [Duplikat]


Mögliche Duplikate:
Übergabe der Variablen an eine Regexp in Javascript 

Ich habe eine Variable:

resource = "user";

Ich möchte diese Variable in eine vordefinierte RegExp einfügen (die folgende Variable wird ersetzt):

/^\/variable\/\d+$/

Wie könnte ich das tun?


12
2017-10-12 15:27


Ursprung


Antworten:


Verwenden Sie den Konstruktor von RegExp:

var re = new RegExp("^\\/" + resource + "\\/\\d+$");

Beachten Sie, dass Sie die Trennzeichen umgehen müssen / zweimal, einmal für den regulären Ausdruck und einmal für die String-Deklaration.

Sie können auch eine Escape-Funktion verwenden, um Strings zu zitieren, die in regulären Ausdrücken verwendet werden sollen:

function quote(str) {
    return str.replace(/(?=[\/\\^$*+?.()|{}[\]])/g, "\\");
}

Das führt uns dazu:

var re = new RegExp("^\\/" + quote(resource) + "\\/\\d+$");

28
2017-10-12 15:33



Du solltest das können.

var resource = "user";
var regex = new RegExp("^\/"+resource+"\/\d+$", "g");

Sie können dann die RegExp Objekt zu Funktionen wie myString.replace() oder ruf an exec() Methode des RegExp-Objekts selbst.


7
2017-10-12 15:30



Du kannst den ... benutzen new RegExp Methode:

var resource = "user";
new RegExp("^\/"+resource+"\/\d+$");

3
2017-10-12 15:32