8 Stimmen

Javascript speichert Regex in einer Variablen

Ich habe diese Code-Zeile in javascript

var re = (http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?

Normalerweise kapsle ich die Regex-Syntax mit der / Zeichen, aber da sie innerhalb der Regex zu finden sind, wird die Kapselung durcheinander gebracht. Gibt es einen anderen Weg, wie ich es innerhalb der Variablen speichern kann?

Die aktuellen Schrägstriche, die wie Escape-Zeichen zu sein scheinen, sind Teil der Regex, da ich dies in c# als gut und funktioniert perfekt verwenden

31voto

geowa4 Punkte 38662
var re = new RegExp("^your regexp.*$", "gi");

14voto

Ates Goral Punkte 132294

Eine Möglichkeit ist die Flucht alle Vorkommen von / in Ihrer Regex als \/ wie Sie es teilweise bereits tun:

var re = /(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#])?/;

2voto

Tim Pietzcker Punkte 311448

Sie können den Schrägstrich innerhalb Ihrer Regex auslassen:

/(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#])?/

(Sie haben dies bereits mit den ersten beiden Schrägstrichen getan...)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X