1056 Stimmen

Telefonnummern mit Regex validieren

Ich versuche, eine umfassende Regex zusammen zu setzen, um Telefonnummern zu validieren. Idealerweise würde es internationale Formate behandeln, aber es muss US-Formate, einschließlich der folgenden behandeln:

  • 1-234-567-8901
  • 1-234-567-8901 x1234
  • 1-234-567-8901 ext1234
  • 1 (234) 567-8901
  • 1.234.567.8901
  • 1/234/567/8901
  • 12345678901

Ich werde mit meinem derzeitigen Versuch antworten, aber ich hoffe, dass jemand etwas Besseres und/oder Eleganteres weiß.

-1voto

oriadam Punkte 6555

Da es so viele Möglichkeiten gibt, eine Telefonnummer zu schreiben, kann man einfach testen, ob die Zahl der Ziffern ausreicht, egal wie sie aufgeteilt sind. ich habe festgestellt, dass 9 bis 14 Ziffern für mich funktionieren:

^\D*(\d\D*){9,14}$

wahr:

  • 123456789
  • 1234567890123
  • +123 (456) 78.90-98.76

falsch:

  • 123
  • (1234) 1234
  • 9007199254740991
  • 123 wird nicht tun, was Sie mir sagen
  • +123 (456) 78.90-98.76 #543 ext 210>2>5>3
  • (123) 456-7890 am Morgen (987) 54-3210 nach 18:00 Uhr und fragen Sie nach Shirley

wenn Sie wollen um die letzten beiden Beispiele zu unterstützen - einfach die Obergrenze entfernen:

(\d\D*){9,}

(die ^$ sind nicht erforderlich, wenn es keine Obergrenze gibt)

-5voto

bcherny Punkte 2864
/\b(\d{3}[^\d]{0,2}\d{3}[^\d]{0,2}\d{4})\b/

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