Die folgenden Zeichen werden ebenfalls akzeptiert. ()-+ Leerzeichen
Sind nicht +61(02)89876544 und +61 (0)414 570776 ungültig? Solltest du das nicht fallen lassen 0 aus der Vorwahl if +61 ist enthalten.
– nnnnn
12. Oktober 2016 um 5:42 Uhr
3ozän
Das ist ziemlich die Struktur der Telefonnummer. Die einfachste Lösung besteht darin, den Benutzer zur Eingabe in einem bestimmten Format aufzufordern oder das Formular automatisch formatieren zu lassen. Wenn Sie eine Regex verwenden müssen, habe ich mir Folgendes ausgedacht:
Wenn ich eine größere Regex wie diese in Angriff nehme, ist es meiner Meinung nach am einfachsten, Ihre Testfälle in ein Tool wie z regex101.com und dann Capture-Gruppe für Capture-Gruppe (benennen Sie sie, wenn Sie können), bis Sie am Ende angelangt sind. Sobald eine Gruppe nicht passt, ändern Sie, was Sie bereits haben, bis es passt.
Bearbeiten 2019: Da diese Frage gelegentlich immer noch Aufmerksamkeit erregt, wollte ich darauf hinweisen, dass es möglicherweise besser ist, wenn möglich eine Validierungsbibliothek zu verwenden. Mein Vorschlag wäre Googles i18n-Bibliothek für Telefonnummern. Es ist viel robuster, als es eine Regex jemals sein könnte.
sieht gut aus, ich muss auch min 7 max 20 zeichenlimit setzen
– KRR
12. Oktober 2016 um 4:59 Uhr
Was meinen Sie? Diese Regex stimmt mit genau 8 Ziffern mit optionaler Vorwahl (optional Null gefolgt von 1, 2, 3, 4,5, 7 oder 8) und optionaler Ländervorwahl (optional + dann 64) überein. Wenn die Regex länger ist, liegt dies entweder an den Leerzeichen oder Bindestrichen darin oder wahrscheinlicher am abschließenden Leerzeichen am Ende. Bearbeiten: Ich hoffe, Sie meinen nicht, dass die Regex-Länge weniger als 20 Zeichen betragen muss …
– 3ozän
12. Oktober 2016 um 5:03 Uhr
Die Länge der Telefonnummer sollte 7 bis 20 betragen und Musterfehler zeigen den JavaScript-Modus in der an regex101.com
– KRR
12. Oktober 2016 um 5:09 Uhr
@KRR Ich habe es aktualisiert, um die JavaScript-Engine zu verwenden (ich hätte früher prüfen sollen, welche) und die längstmögliche Übereinstimmung in die Liste der Testeingaben aufgenommen (es sind 19 Zeichen).
– 3ozän
12. Oktober 2016 um 5:26 Uhr
@KRR, diese Antwort scheint von Zeit zu Zeit Aufmerksamkeit zu erregen. Wenn Ihre Frage damit beantwortet wurde, können Sie sie bitte als akzeptierte Antwort markieren, oder falls dies nicht der Fall ist, erläutern Sie Ihre Frage bitte, damit ich sie besser beantworten kann. (oder wenn Sie denken, dass eine andere Antwort besser ist, markieren Sie diese bitte als akzeptiert)
– 3ozän
11. Mai 2018 um 18:07 Uhr
SydMK
Ich habe die Antwort von @3ocene positiv bewertet. Aber später gefunden passte nicht ganz zu meinem Fall.
Sind nicht
+61(02)89876544
und+61 (0)414 570776
ungültig? Solltest du das nicht fallen lassen0
aus der Vorwahl if+61
ist enthalten.– nnnnn
12. Oktober 2016 um 5:42 Uhr