Wenn Sie nur sicherstellen wollen, dass Sie keinen zufälligen Müll im Feld haben (z. B. von Formular-Spammern), sollte diese Regex ausreichen:
^[0-9+\(\)#\.\s\/ext-]+$
Beachten Sie, dass es keine speziellen Regeln dafür gibt, wie viele Ziffern oder welche Ziffern in diesen Ziffern gültig sind, es wird lediglich überprüft, dass nur Ziffern, Klammern, Bindestriche, Plus, Leerzeichen, Pfund, Sternchen, Punkt, Komma oder die Buchstaben e
, x
, t
vorhanden sind.
Sie sollte mit internationalen Nummern und Lokalisierungsformaten kompatibel sein. Sehen Sie die Notwendigkeit, eckige, geschweifte oder schräge Klammern für einige Regionen zuzulassen? (derzeit sind sie nicht enthalten).
Wenn Sie Regeln für einzelne Ziffern beibehalten wollen (wie z. B. in den USA müssen Ortsvorwahlen und Vorwahlen (Amtskennziffern) in den Bereich 200-999 fallen), dann viel Glück für Sie. Die Beibehaltung eines komplexen Regelsatzes, der zu jedem beliebigen Zeitpunkt in der Zukunft von jedem Land der Welt überholt werden könnte, macht keinen Spaß.
Und während das Entfernen aller/der meisten nicht-numerischen Zeichen auf der Serverseite gut funktionieren kann (vor allem, wenn Sie planen, diese Werte an einen Dialer weiterzugeben), möchten Sie die Benutzereingabe während der Validierung vielleicht nicht zerdrücken, vor allem, wenn Sie möchten, dass der Benutzer in einem anderen Feld Korrekturen vornimmt.