Wenn es um die Validierung von Formularen geht, wird die Regexp zur Überprüfung der korrekten Bedeutung und der korrekten Daten aufgrund der unterschiedlichen Länder- und Anbieterstandards äußerst komplex sein. Es wird auch schwer sein, sie auf dem neuesten Stand zu halten.
Ich interpretiere die Frage so, dass ein allgemein gültiges Muster gesucht wird, das möglicherweise intern nicht konsistent ist - z. B. wenn eine Reihe von Nummern gültig ist, aber nicht überprüft wird, ob die Fernleitung, die Vermittlungsstelle usw. dem gültigen Muster für die Landesvorwahl entspricht.
Nordamerika ist einfach, und für das Ausland ziehe ich es vor, ein "idiomatisches" Muster zu verwenden, das die Art und Weise abdeckt, wie die Menschen ihre Zahlen angeben und sich merken:
^((((\(\d{3}\))|(\d{3}-))\d{3}-\d{4})|(\+?\d{2}((-| )\d{1,8}){1,5}))(( x| ext)\d{1,5}){0,1}$
Das nordamerikanische Muster stellt sicher, dass, wenn eine Klammer enthalten ist, beide enthalten sind. Das internationale Muster berücksichtigt ein optionales anfängliches "+" und den Ländercode. Danach sind Sie im Idiom. Gültige Übereinstimmungen wären:
(xxx)xxx-xxxx
(xxx)-xxx-xxxx
(xxx)xxx-xxxx x123
12 1234 123 1 x1111
12 12 12 12 12
12 1 1234 123456 x12345
+12 1234 1234
+12 12 12 1234
+12 1234 5678
+12 12345678
Dies mag voreingenommen sein, da sich meine Erfahrung auf Nordamerika, Europa und ein wenig Asien beschränkt.