Was ist die Mindestlänge einer gültigen internationalen Telefonnummer?


147

Ich muss die Benutzereingabe einer internationalen Telefonnummer überprüfen. Laut E.164 beträgt die maximale Länge 15 Stellen, aber ich konnte keine Informationen über die minimale Länge finden. Ich betrachte nur Ziffern, kein Pluszeichen oder Trennzeichen.


Gute Frage. Konnten Sie eine Antwort darauf finden?
Shobhit Puri

1
Link zeigt das Minimum ist 7
LoranceChen

Antworten:


121

Laut verschiedenen Quellen hängt die Mindestlänge im E-164-Format von Land zu Land ab. Zum Beispiel:

  • Für Israel : Die Mindestlänge der Telefonnummer (ohne Landesvorwahl) beträgt 8 Ziffern. - Offizielle Quelle (Ländercode 972)
  • Für Schweden : Die Mindestanzahl (ohne Ländercode) beträgt 7 Ziffern. - Offizielle Quelle (Ländercode 46)

  • Für Salomonen sind es 5 für Festnetztelefone. - Quelle (Ländercode 677)

... und so weiter. Inklusive Landesvorwahl beträgt die Mindestlänge 9 Stellen für Schweden und 11 für Israel und 8 für die Salomonen.

Bearbeiten (saubere Lösung) : Anstatt eine internationale Telefonnummer durch unterschiedliche Überprüfungen wie Länge usw. zu validieren, können Sie die libphonenumber- Bibliothek von Google verwenden . Es kann eine Telefonnummer im E164-Format direkt validieren. Es wird alles berücksichtigt und Sie müssen nicht einmal das Land angeben, wenn die Nummer im gültigen E164-Format vorliegt. Es ist sehr gut! Ein Beispiel nehmen:

String phoneNumberE164Format = "+14167129018"
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
try {
    PhoneNumber phoneNumberProto = phoneUtil.parse(phoneNumberE164Format, null);
    boolean isValid = phoneUtil.isValidNumber(phoneNumberProto); // returns true if valid
    if (isValid) {
        // Actions to perform if the number is valid
    } else {
        // Do necessary actions if its not valid 
    }
} catch (NumberParseException e) {
    System.err.println("NumberParseException was thrown: " + e.toString());
}

Wenn Sie das Land kennen, für das Sie die Nummern validieren, benötigen Sie nicht einmal das E164-Format und können das .parsefunktionierende Land angeben, anstatt es zu übergeben null.


OMG, wo war dieser Google-Link vor Wochen? :-) Vielen Dank!
AMM

Yaa, ich habe es kürzlich aktualisiert. Entschuldigung für die Verspätung. Ich hoffe es hilft.
Shobhit Puri

@ShobhitPuri Ich denke, Googles Bibliothek sagt auch, dass "2222" eine gültige Nummer ist, daher sollte möglicherweise eine minimale Länge zu überprüfen sein.
Android-Entwickler

@androiddeveloper Ich habe Ihre obige Nummer auf libphonenumber.appspot.com ausprobiert. Aber es sagte, es sei keine mögliche Zahl. Mit welcher Landesvorwahl haben Sie diese Nummer ausprobiert? Es gibt auch zwei Funktionen: eine, die prüft, ob es sich um eine mögliche Nummer handelt, und eine, die prüft, ob sie gültig ist. Ich denke nicht, dass wir eine Längenprüfung brauchen sollten.
Shobhit Puri

Wenn ich das mit dem israelischen Ländercode versuche, wird es tatsächlich als gültig angezeigt. Vielleicht können Sie die Nummerntypen überprüfen . getPhoneTypescheint UAN zurückzugeben. Diese 2222-Nummer ist also UAN. Universal Access Numbers können aber auch länger sein. Technisch scheint es eine gültige Nummer zu sein. Sie können also entweder den Typ der Telefonnummer oder eine Mindestlänge überprüfen.
Shobhit Puri

15

EDIT 2015-06-27: Minimum ist tatsächlich 8, einschließlich Ländercode. Mein Fehler.

Ursprünglicher Beitrag

Die minimale Telefonnummer, die ich benutze, ist 10 Ziffern. Internationale Benutzer sollten immer ihre Landesvorwahl eingeben, und meines Wissens gibt es keine Länder mit weniger als zehn Ziffern, wenn Sie die Landesvorwahl zählen.

Weitere Informationen hier: https://en.wikipedia.org/wiki/Telephone_numbering_plan


12
Salomonen können 8 einschließlich Ländercode haben ( en.wikipedia.org/wiki/Telephone_numbers_in_the_Solomon_Islands )
Tom Heard

Danke @TomHeard - habe meinen Beitrag überarbeitet!
Jamon Holmgren

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.