Press "Enter" to skip to content

Ülke Kodu Uzantılı Telefon Numarası Alanı Java Spring Boot İle Nasıl Doğrulanır

zeynep koyun 0

Merhabalar, bu yazımızda son kullanıcı veya kullanıcılar tarafından ilgili form elemanlarına girdi olarak verilen telefon numaralarının geçerli olup-olmama durumunu inceleyeceğiz.

İlgili alan kodlarına sahip telefon numaralarının geçerli olup olmama durumu için bir çok farklı yöntem bulunmamaktadır. İlk Yöntem olarak ülke özelinde telefon numarası regex’i(ifade kalıbı) yazılabilir. Bu yöntemi, kendi ülke kodumuz üzerinden açıklayacak olursak aşağıdaki kod parçacığıyla yapabiliriz.

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class HelloWorld {
  public static void main(String[] args) {
   String str = "(+90) 0xxx xxx xx xx";
   String regex = "^[\\(]{1}[+]{1}[9]{1}[0]{1}[\\)]{1}\\s[0]{1}[0-9]  {3}\\s[0-9]{3}\\s[0-9]{2}\\s[0-9]{2}$";
   Pattern p = Pattern.compile(regex);
   Matcher m = p.matcher(str);
   System.out.println("Original Phone Number : " + str);
   System.out.println("Is the Phone Number Valid? : " + m.matches());
   }
}

Kod parçağıcında verilen regex ifadesine detaylı bakacak olursak eğer:

  1.  ^ : İfade kalıbı başlangıcı anlatılır.
  2. [\\(]{1}: İfadenin 1 tane parantez açılarak başlanacağı anlatılmaktadır.
  3. [+]{1}: Hemen sonrasında + ifadesi gelmelidir.
  4. [9]{1}: Hemen sonrasında 1 tane 9 rakamı gelmelidir.
  5. [0]{1}: Hemen sonrasında 1 tane 0 rakamı gelmelidir.
  6. [\\)]{1}: 2.adımda açılan parantez ifadesinin kapanma durumu anlatılır.
  7. \\s: Bir boşluk olacağı anlatılır.
  8. [0]{1}: Numaranın 1 tane 0 rakamı ile başlayacağı anlatılır.
  9. [0-9]{3}: Hemen sonrasında 0 ile 9 arasındaki rakamların oluşturduğu 3 rakamlı bir değer gelmelidir.
  10. $:İfade kalıbın bitişini anlatır.

Yukarıdaki ifade kalıbı dikkate alındığında isteğe bağlı özelleştirmeler yapılarak kurallar azaltılıp-arttırılarak yeni ifade kalıpları yazılabilir.

Birden fazla ülke kodu olması durumunda benzer şekilde ifade kalıpları oluşturulabildiği gibi; şu sıralar adından çokça bahsettiren ChatGPT ile konu araştırıldığında libphonenumber adında bir kütüphane bilgisi ile karşılaşılmaktadır.

İlgili kütüphaneyi kendi projemizde kullanabilmek için ilk olarak pom.xml dosya içerisine aşağıdaki kütüphane bağımlılığı eklenmelidir.

<dependency>
  <groupId>com.googlecode.libphonenumber</groupId>
  <artifactId>libphonenumber</artifactId>
  <version>8.12.34</version>
</dependency>

Bağımlılıklar yeniden yüklendikten hemen sonra ise kullanılacağı java kodu içerisine aşağıdaki kod parçağında verildiği gibi eklenebilmektedir.

String phoneNumber="";
PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();
try {
  Phonenumber.PhoneNumber parsedPhoneNumber =     phoneNumberUtil.parse(phoneNumber, null);
  System.out.println(phoneNumberUtil.isValidNumber(parsedPhoneNumber));
} catch (NumberParseException e) {
  System.out.println("Gecerli Bir Telefon Numarasi Giriniz");
}

İyi Okumalar 🙂

Comments are closed.