SeouliteLab

[Java/자바] 전화번호 유효성 검사 본문

프로그래밍

[Java/자바] 전화번호 유효성 검사

Seoulite Lab 2024. 3. 11. 08:18

전화번호의 유효성을 검사하는 작업은 데이터 입력 양식을 처리할 때 자주 필요한 기능입니다. 이번 글에서는 Java로 전화번호의 유효성을 검사하는 여러 가지 방법에 대해 알아보겠습니다.

1. 정규 표현식(Regular Expression) 사용

정규 표현식을 사용하여 전화번호의 유효성을 검사할 수 있습니다. 특정한 전화번호 형식에 맞는 패턴을 정의하여 이를 기준으로 유효성을 판단합니다.

String phoneNumber = "010-1234-5678";
boolean isValid = phoneNumber.matches("^01(?:0|1|[6-9])-(?:\\d{3}|\\d{4})-\\d{4}$");
System.out.println("전화번호 유효성 검사 결과: " + isValid);

2. Apache Commons Validator 라이브러리 사용

Apache Commons Validator 라이브러리를 사용하여 전화번호의 유효성을 검사할 수 있습니다. 이 라이브러리는 다양한 데이터 유효성 검사 기능을 제공합니다.

import org.apache.commons.validator.routines.RegexValidator;

String phoneNumber = "010-1234-5678";
RegexValidator validator = new RegexValidator("^01(?:0|1|[6-9])-(?:\\d{3}|\\d{4})-\\d{4}$");
boolean isValid = validator.isValid(phoneNumber);
System.out.println("전화번호 유효성 검사 결과: " + isValid);

3. Google의 libphonenumber 라이브러리 사용

Google의 libphonenumber 라이브러리를 사용하면 전화번호의 유효성을 좀 더 정확하게 검사할 수 있습니다. 이 라이브러리는 국가별 전화번호 패턴을 제공하여 유효성을 검사합니다.

import com.google.i18n.phonenumbers.NumberParseException;
import com.google.i18n.phonenumbers.PhoneNumberUtil;

String phoneNumber = "01012345678";
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
try {
    com.google.i18n.phonenumbers.Phonenumber.PhoneNumber number = phoneUtil.parse(phoneNumber, "KR");
    boolean isValid = phoneUtil.isValidNumber(number);
    System.out.println("전화번호 유효성 검사 결과: " + isValid);
} catch (NumberParseException e) {
    System.err.println("유효하지 않은 전화번호입니다.");
}

4. 전화번호 형식 파싱 및 검사

전화번호를 각각의 부분(국가 코드, 지역 코드, 전화번호)으로 파싱하고 각 부분의 유효성을 개별적으로 검사하는 방법도 있습니다.

String phoneNumber = "01012345678";
boolean isValid = false;
if (phoneNumber != null && phoneNumber.length() == 11) {
    String countryCode = phoneNumber.substring(0, 3);
    String areaCode = phoneNumber.substring(3, 7);
    String number = phoneNumber.substring(7);
    if (countryCode.equals("010") && areaCode.matches("\\d{4}") && number.matches("\\d{4}")) {
        isValid = true;
    }
}
System.out.println("전화번호 유효성 검사 결과: " + isValid);

5. 전화번호 형식 라이브러리 사용

특정 전화번호 형식을 검증하는 라이브러리를 사용하여 유효성을 검사할 수도 있습니다. 이 방법은 간편하게 사용할 수 있지만, 형식이 한정되어 있을 수 있습니다.

import org.apache.commons.validator.routines.RegexValidator;

String phoneNumber = "01012345678";
RegexValidator validator = new RegexValidator("010[1-9]\\d{7,8}");
boolean isValid = validator.isValid(phoneNumber);
System.out.println("전화번호 유효성 검사 결과: " + isValid);

6. 기타 방법

다양한 방법으로 전화번호의 유효성을 검사할 수 있습니다. 각 상황에 맞게 적절한 방법을 선택하여 사용하시면 됩니다.