어제 오늘 내일

[Javascript] 정규식으로 핸드폰 번호 체크하기 (하이픈 포함, 미포함) 본문

IT/Javascript

[Javascript] 정규식으로 핸드폰 번호 체크하기 (하이픈 포함, 미포함)

hi.anna 2025. 2. 25. 18:22

 

정규식으로 핸드폰 번호 체크하기

  • 하이픈(-) 포함
  • 하이픈(-) 및 공백 미포함 (숫자만 포함)

 

 

1. 하이픈 포

허용하는 형식

  • 010-1234-5678
  • 011-234-5678
  • 016-789-1234
  • 017-456-7890
  • 019-9876-5432

 

정규식

/^01[016789]-\d{3,4}-\d{4}$/

 

  • ^: 문자열 시작
  • 01: 핸드폰 번호는 01로 시작
  • [016789]: 두 번째 자리는 0, 1, 6, 7, 8, 9 중 하나
    • 010, 011, 016, 017, 018, 019만 유효
  • -: 하이픈이 반드시 포함되어야 함
  • \d{3,4}: 중간 번호는 3자리 또는 4자리
  • \d{4}: 마지막 번호는 4자리
  • $: 문자열 끝

 

예제 코드

function isHyphenMobileNumber(phone) {
  const regex = /^01[016789]-\d{3,4}-\d{4}$/;
  return regex.test(phone);
}

console.log(isHyphenMobileNumber("010-1234-5678")); // true
console.log(isHyphenMobileNumber("011-234-5678"));  // true
console.log(isHyphenMobileNumber("016-789-1234"));  // true
console.log(isHyphenMobileNumber("010-12-5678"));  // false (중간 번호가 3자리여야 함)
console.log(isHyphenMobileNumber("01012345678"));   // false (하이픈 없음)
console.log(isHyphenMobileNumber("010 1234 5678")); // false (공백 포함)
console.log(isHyphenMobileNumber("019-1234-567"));  // false (마지막 번호는 4자리여야 함)
  • **하이픈(-)**이 반드시 포함된 형식만 true 반환
  • 숫자만 포함되거나 공백이 포함되면 false 반환

 

2. 하이픈 및 공백 미포함 (숫자만 포함)

허용하는 형식

  • 01012345678
  • 0112345678
  • 0167891234

 

정규식

/^01[016789]\d{7,8}$/

 

  • ^: 문자열 시작
  • 01: 핸드폰 번호는 01로 시작
  • [016789]: 두 번째 자리는 0, 1, 6, 7, 8, 9 중 하나
  • \d{7,8}: 숫자만 7자리 또는 8자리
    • 중간 번호가 3자리일 때는 마지막 번호가 4자리여야 함
    • 중간 번호가 4자리일 때는 마지막 번호가 4자리여야 함
  • $: 문자열 끝

 

예제 코드

function isPlainMobileNumber(phone) {
  const regex = /^01[016789]\d{7,8}$/;
  return regex.test(phone);
}

console.log(isPlainMobileNumber("01012345678")); // true
console.log(isPlainMobileNumber("0112345678"));  // true
console.log(isPlainMobileNumber("0167891234"));  // true
console.log(isPlainMobileNumber("010-1234-5678"));// false (하이픈 포함)
console.log(isPlainMobileNumber("010 1234 5678"));// false (공백 포함)
console.log(isPlainMobileNumber("019123456"));    // false (자리 수 부족)
console.log(isPlainMobileNumber("010 12345678")); // false (공백 포함)
  • 하이픈(-) 또는 공백포함되지 않은 숫자만 허용
  • 10자리 또는 11자리의 숫자만 유효
  • 중간 번호는 3자리 또는 4자리, 마지막 번호는 항상 4자리

 

 

반응형
Comments