본문 바로가기
기초다지기/JS 코딩테스트

javascript 정규식을 사용한 문자열 다루기

by 김빵그 2023. 10. 23.

문제 

문자열 길이가 4 또는 6이면서, 숫자로만 구성되어 있는지 t/f를 반환

나의 풀이 

function solution(s) {
    var len = s.length == 4 || s.length == 6
    return !/[A-Za-z]/.test(s) && len;
}
  • 문자열 s의 길이가 4또는 6인지 확인해 len 에 불리언 값을 저장
  • 정규식 /A-Za-z/를 사용하여 문자열 s에 알파벳 문자가 포함되어있는지 확인한다
  • .test() 메서드는 문자열에 패턴이 존재하면 true 아니면 false 반환한다
 

RegExp.prototype.test() - JavaScript | MDN

test() 메서드는 주어진 문자열이 정규 표현식을 만족하는지 판별하고, 그 여부를 true 또는 false로 반환합니다.

developer.mozilla.org

리팩토링 

function solution(s) {
    return /^[A-Za-z]{4}$|^[A-Za-z]{6}$/.test(s);
}
  • ^ : 문자열의 시작
  • [A-Za-z] : 알파벳 대소문자 모두 포함
  • {숫자} : 알파벳 문자가 4개인지
  • $ : 문자열의 끝
  • | : 또는

다른 풀이

function alpha_string46(s){
  var regex = /^\d{6}$|^\d{4}$/;
  return regex.test(s);
}
  •  /d : 숫자를 나타내는 것 [0-9] 와 동일한 의미를 가진다