Geçerli bir uluslararası telefon numarasının minimum uzunluğu nedir?


147

Uluslararası bir telefon numarasının kullanıcı girişini doğrulamam gerekiyor. E.164'e göre , maksimum uzunluk 15 basamaktır, ancak minimum hakkında herhangi bir bilgi bulamadım. Sadece rakamları düşünüyorum, artı işareti veya ayırıcı yok.


İyi soru. Buna bir cevap bulabildin mi?
Shobhit Puri

1
bağlantı minimum 7 olduğunu gösterir
LoranceChen

Yanıtlar:


122

Farklı kaynaklara göre, E-164 biçimindeki minimum uzunluğun ülkeden ülkeye bağlı olduğunu düşünüyorum. Örneğin:

  • İsrail için : Minimum telefon numarası uzunluğu (ülke kodu hariç) 8 hanedir. - Resmi Kaynak (Ülke Kodu 972)
  • İsveç için : Minimum sayı uzunluğu (ülke kodu hariç) 7 basamaktır. - Resmi Kaynak (ülke kodu 46)

  • Solomon Adaları için sabit hatlı telefonlar için 5. - Kaynak (ülke kodu 677)

... ve bunun gibi. Ülke kodu da dahil olmak üzere minimum uzunluk İsveç için 9, İsrail için 11 ve Solomon Adaları için 8 rakamdır.

Edit (Clean Solution) : Aslında, uzunluk vb.Gibi farklı kontroller yaparak uluslararası bir telefon numarasını doğrulamak yerine Google'ın libphonenumber kütüphanesini kullanabilirsiniz . Doğrudan E164 formatında bir telefon numarasını doğrulayabilir. Her şeyi dikkate alacaktır ve sayı geçerli E164 biçimindeyse ülkeye vermeniz bile gerekmez. Oldukça iyi! Bir örnek almak gerekirse:

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());
}

Numaraları doğruladığınız ülkeyi biliyorsanız, E164 formatına bile ihtiyacınız yoktur ve ülkeyi .parsegeçmek yerine işlevini belirtebilirsiniz null.


OMG, Google bağlantısı haftalar önce neredeydi! :-) Teşekkürler!
AMM

Yaa, yakın zamanda güncelledim. Gecikme için üzgünüm. Umarım yardımcı olur.
Shobhit Puri

@ShobhitPuri Bence Google'ın kütüphanesi de "2222" nin geçerli bir sayı olduğunu söylüyor, bu yüzden kontrol etmek için minimum bir uzunluk olmalı.
android geliştirici

@androiddeveloper Yukarıdaki numaranızı libphonenumber.appspot.com'da denedim. Ama bunun olası bir sayı olmadığını söyledi. Bu numarayı hangi ülke koduyla denediniz? Ayrıca iki işlev vardır: biri olası bir sayı olup olmadığını kontrol eder, diğeri ise geçerli olup olmadığını kontrol eder. Uzunluk kontrolüne ihtiyacımız olduğunu düşünmüyorum.
Shobhit Puri

Aslında bunu İsrail ülke koduyla denediğimde geçerli olduğunu gösteriyor. Belki sayı türlerini kontrol edebilirsiniz . getPhoneTypeUAN dönmek gibi görünüyor. Yani bu 2222 numarası UAN. Ancak Evrensel Erişim Numaraları da daha uzun olabilir. Teknik olarak geçerli bir sayı gibi görünüyor. Böylece, telefon numarası türünü veya sizin için minimum uzunluğu kontrol edebilirsiniz.
Shobhit Puri

15

EDIT 2015-06-27: Ülke kodu da dahil olmak üzere minimum sayı 8'dir. Benim hatam.

Orijinal yayın

Kullandığım minimum telefon numarası 10 basamaklı. Uluslararası kullanıcılar her zaman ülke kodlarını koymalıdır ve bildiğim kadarıyla ülke kodunu sayarsanız ondan az basamağa sahip ülke yoktur.

Daha fazla bilgi için: https://en.wikipedia.org/wiki/Telephone_numbering_plan



Teşekkürler @TomHeard - yazımı revize etti!
Jamon Holmgren

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.