Ayrıca " libphonenumber " Google Kütüphanesine bakmanızı öneririm . Normal ifade olmadığını biliyorum ama tam olarak ne istiyorsan onu yapıyor.
Örneğin, aşağıdakileri tanıyacaktır:
15555555555
olası bir sayıdır, ancak geçerli bir sayı değildir. ABD dışındaki ülkeleri de destekler.
Fonksiyonellik özellikleri:
- Dünyanın tüm ülkeleri / bölgeleri için telefon numaralarını ayrıştırma / biçimlendirme / doğrulama.
getNumberType
- sayının türünü sayının kendisine göre alır; Sabit hat, Mobil, Ücretsiz, Premium Ücret, Paylaşılan Maliyet, VoIP ve Kişisel Numaraları (mümkün olduğunda) ayırt edebilir.
isNumberMatch
- iki sayının aynı olup olmayacağına dair güven düzeyi kazanır.
getExampleNumber
/ getExampleNumberByType
- tüm ülke / bölgeler için geçerli örnek numaraları sağlar ve hangi tür telefon numarasına ihtiyaç duyulacağını belirleme seçeneği sunar.
isPossibleNumber
- sadece uzunluk bilgisini kullanarak, tam bir doğrulamadan çok daha hızlı bir sayının olası bir telefon numarası olup olmadığını hızla tahmin etme.
isValidNumber
- uzunluk ve önek bilgisini kullanarak bir bölge için telefon numarasının tam olarak doğrulanması.
AsYouTypeFormatter
- kullanıcılar her rakamı girdiğinde telefon numaralarını anında biçimlendirir.
findNumbers
- metin girişindeki sayıları bulur.
PhoneNumberOfflineGeocoder
- bir telefon numarasıyla ilgili coğrafi bilgiler sağlar.
Örnekler
Telefon numarası doğrulamasında en büyük sorun, kültürel olarak çok bağımlı olmasıdır.
- Amerika
(408) 974–2042
Bir olan geçerli ABD numarası
(999) 974–2042
olan bir geçerli değil ABD numarası
- Avustralya
0404 999 999
Bir olan geçerli Avustralya sayı
(02) 9999 9999
aynı zamanda geçerli bir Avustralya numarasıdır
(09) 9999 9999
olan bir geçerli değil Avustralyalı sayı
Normal bir ifade, bir telefon numarasının biçimini kontrol etmek için iyidir, ancak bir telefon numarasının geçerliliğini gerçekten kontrol edemez .
Telefon numaranızı test etmek için basit bir normal ifadeyi atlamanızı ve Google gibi bir kütüphaneyi libphonenumber
(GitHub projesine bağlantı) kullanmanızı öneririm .
Libphonenumber ile tanışın!
Daha karmaşık örneklerinizden birini kullanarak şu verileri1-234-567-8901 x1234
elde edersiniz (çevrimiçi demoya bağlantı) :libphonenumber
Validation Results
Result from isPossibleNumber() true
Result from isValidNumber() true
Formatting Results:
E164 format +12345678901
Original format (234) 567-8901 ext. 123
National format (234) 567-8901 ext. 123
International format +1 234-567-8901 ext. 123
Out-of-country format from US 1 (234) 567-8901 ext. 123
Out-of-country format from CH 00 1 234-567-8901 ext. 123
Yani sadece telefon numarasının geçerli olup olmadığını öğrenmekle kalmaz (aynı zamanda), aynı zamanda yerel ayarınızda tutarlı telefon numarası biçimlendirmesi elde edersiniz.
Bonus olarak, libphonenumber
telefon numaralarının geçerliliğini kontrol etmek için bir dizi veri seti vardır, bu nedenle +61299999999
(uluslararası sürümü (02) 9999 9999
) gibi bir sayıyı kontrol etmek, biçimlendirmeyle geçerli bir sayı olarak döner:
Validation Results
Result from isPossibleNumber() true
Result from isValidNumber() true
Formatting Results
E164 format +61299999999
Original format 61 2 9999 9999
National format (02) 9999 9999
International format +61 2 9999 9999
Out-of-country format from US 011 61 2 9999 9999
Out-of-country format from CH 00 61 2 9999 9999
libphonenumber ayrıca telefon numarasının olduğu tespit edilen konumu kapmak ve saat dilimi bilgilerini telefon numarasından almak gibi birçok ek avantaj sağlar:
PhoneNumberOfflineGeocoder Results
Location Australia
PhoneNumberToTimeZonesMapper Results
Time zone(s) [Australia/Sydney]
Ancak geçersiz Avustralya telefon numarası ( (09) 9999 9999
) geçerli bir telefon numarası olmadığını döndürür.
Validation Results
Result from isPossibleNumber() true
Result from isValidNumber() false
Google'ın sürümünde Java ve Javascript kodu vardır, ancak kullanıcılar Google i18n telefon numarası veri kümesini kullanan diğer diller için de kitaplıklar uygulamıştır:
Her zaman bir yerel ayardan sayı kabul edeceğinizden ve her zaman tek bir formatta olacağından emin olmadığınız sürece, bunun için kendi kodunuzu yazmamanızı ve telefon numaralarını doğrulamak ve görüntülemek için libphonenumber kullanmanızı öneririm.