문제
미국 휴대폰 번호가 유효하다면 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
'알고리즘 > FreeCodeCamp' 카테고리의 다른 글
[자바스크립트/알고리즘] 회문(Palindrome) 검사 (0) | 2021.02.04 |
---|---|
[자바스크립트/알고리즘] 2진수 문자열을 영어로 변환 (0) | 2021.02.03 |
[자바스크립트/알고리즘] flat 함수 대안 (0) | 2021.02.03 |
[자바스크립트/알고리즘] 프리코드캠프(FCC) - Drop it : 함수가 true일 때 까지 요소 제거 (shift) (0) | 2021.02.02 |
[자바스크립트/알고리즘] 배열 여러개를 합친 후 유일한 값 반환하기 (set 객체, flat 함수) (0) | 2021.02.01 |