5 Stimmen

Wie kann man überprüfen, ob die vom Benutzer eingegebene Telefonnummer die Landesvorwahl enthält?

Gibt es eine einfache Möglichkeit zu prüfen, ob eine vom Benutzer eingegebene Telefonnummer die Landesvorwahl enthält, und zu bestätigen, dass die Nummer korrekt ist? Ich verwende keine speziellen Formate, die Nummer selbst muss nur aus Ziffern bestehen, keine ('s, -'s und dergleichen. Ist eine solche Validierung möglich, ohne den Benutzer nach einem Land zu fragen? Der Trick ist, dass ich mit allen Zahlen weltweit arbeiten möchte.

Ich vermute, es kann nicht mit Regex gemacht werden (habe ein bisschen gegoogelt und viel gefunden, aber nicht für dieses Problem). Gibt es eine Bibliothek dafür? Ich bin mit Python.

Oder wäre es vielleicht sinnvoller, ein Format zu erzwingen, z. B. X-YYYYYYYY..., wobei X ein Ländercode wäre, oder so ähnlich?

4voto

Andy Punkte 13487

Hier ist Googles Bibliothek für den Umgang mit Telefonnummern (es ist in Java). Da Google jedoch auch ein Python-Geschäft ist, könnte ich mir vorstellen, dass sie irgendwo eine Python-Version zur Verfügung haben, oder Sie könnten in der Lage sein, das zu extrahieren, was Sie brauchen, und es zu übersetzen.

2voto

dave singer Punkte 81

Eine Zahl wie 247 8000 könnte das sein:

  • die lokale Nummer 247 8000 in einem nicht näher bezeichneten Gebiet in einem nicht näher bezeichneten Land, vielleicht +1 212 247 8000
  • die lokale Nummer 8000 mit der Vorwahl 247 in einem nicht näher bezeichneten Land, vielleicht +269 247 8000
  • die lokale Nummer 8000 in der Landesvorwahl 247, als +247 8000

Ohne weiteren Kontext ist es unmöglich zu sagen.

Das +-Symbol ist entscheidend für die Identifizierung des Ländercode-Teils.

1voto

Andrey Punkte 57704

Ich habe mich eine Zeit lang mit diesem Thema beschäftigt. Wir haben eine riesige Datenbank mit Nummern, von denen niemand weiß, ob sie einen Ländercode haben oder nicht. Die allgemeine Antwort lautet: Es ist unmöglich, das herauszufinden. Wir hatten einige Nummern, die gültige US-Nummern ohne Landesvorwahl (1) und gültige Nummern anderer Länder mit Ortsvorwahl waren. Aber in 99% der Fälle können Sie prüfen, ob die Länge der Nummer 9 ist, dann gibt es keine Ländervorwahl. Sie sollten durchsetzen. Benutzer müssen den Ländercode eingeben.

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