본문 바로가기
알고리즘/FreeCodeCamp

[자바스크립트/알고리즘] 휴대폰 번호 검증 (정규식)

by 프론트엔드 지식백과 2021. 2. 4.

문제

미국 휴대폰 번호가 유효하다면 true, 유효하지 않다면 false를 리턴하라

사용자는 유효한 미국 번호의 형식이 있는 한 원하는 방식으로 양식 필드를 작성할 수 있다.

국가 코드가 제공된 경우 국가 코드가 1인지 확인해야 한다.

 

다음은 미국 번호에 대한 유효한 형식의 예시이다.

555-555-5555
(555)555-5555
(555) 555-5555
555 555 5555
5555555555
1 555 555 5555

 

나의 풀이

function telephoneCheck(str) {
  let regex = /^(1\s?)?(\(\d{3}\)|\d{3})[\s\-]?\d{3}[\s\-]?\d{4}$/
  return regex.test(str);
}

 

정규식을 사용하여 풀었다. 사실 정규식말고 해결방법이 떠오르지 않는다.

 

^ : 시작

(1\s?)? : 국가번호 1이 있는지 확인

\d{3} : 숫자 3개가 있는지 확인

(\(\d{3}\)|\d{3}) : 괄호 안에 숫자 3개 or 괄호 없이 숫자 3개

[\s\-]? : 공백 혹은 대시(-)가 있는지 확인

$ : 끝

 

프리코드 캠프 : JavaScript Algorithms and Data Structures Projects: Telephone Number Validator

(문제 출처: www.freecodecamp.org)

728x90