2017-01-26 2 views
0

Ich möchte den folgenden Regex in meinem JS verwenden, der bereits an einem "Telefonnummer" -Formular in der Anwendung meines Unternehmens arbeitet.Regex funktioniert in der Anwendung, aber nicht in Regex101

Wenn ich versuche, es auf den Spielplatz von Regex101 zu setzen und 777-777-7777 einzugeben, kann ich keine Übereinstimmung finden. Das macht keinen Sinn. Weiß jemand, was das Problem sein kann? Ich versuche nur, als Junior-Entwickler die regulären Ausdrücke besser zu verstehen.

[2-9]\\d{2}(-){0,1}[2-9]\\d{2}(-){0,1}\\d{4}$ 
+0

Wenn Sie die Beschreibung von regex 101 von Ihrem Regex (auf der rechten Seite) lesen, würden Sie sehen, dass es sagt * \\ entspricht dem Zeichen \ wörtlich *. Übrigens kann '{0,1}' als '?' Geschrieben werden. Willst du das nicht auch am Anfang mit '^' verankern? –

+0

Danke. Das ist fantastisch. Gerade hinzugefügt? –

Antwort

0

In Javascript regex, müssen Sie die Schrägstriche (\) entkommen, so dass Ihre Regex wie [2-9]\\d{2}(-){0,1}[2-9]\\d{2}(-){0,1}\\d{4}$ aussieht.

Aber für Regex101, müssen Sie diese unescape, so dass Ihre Regex [2-9]\d{2}(-){0,1}[2-9]\d{2}(-){0,1}\d{4}$

Als Nebenbei bemerkt ist: meinst du wirklich die - zu erfassen?

+1

Sie müssen nur entkommen, wenn die Regex als Zeichenfolge in JavaScript definiert ist. JavaScript hat eine Regex-Notation, wo Sie es nicht zu entkommen brauchen: 'var regex =/regex /;' –

+0

@ ssc-hrep3 ja, vergaß das zu erwähnen. Wenn man bedenkt, dass das OP den Backslashes entkam, war es implizit, dass er String verwendete. –

+0

Ich war sicher! Muster: {Nachricht: "Ungültig", Parameter: "[2-9] \\ d {2} (-) {0,1} [2-9] \\ d {2} (-) {0, 1} \\ d {4} $ "}}); –

Verwandte Themen