찰리의 이야기

Javascript 문자열 다루기 기본 본문

찰리: 코딩 연습

Javascript 문자열 다루기 기본

쨜리 2021. 9. 21. 23:32
반응형

Javascript 문자열 다루기 기본

 

 

문제 : 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.

제한 사항

  • s는 길이 1 이상, 길이 8 이하인 문자열입니다.

입출력 예

s / return

"a234" false
"1234" true

조건이 3개이기 때문에 

간단하게 삼항연산자로 표현하면

짧게 이용할 수 있을 것 같단 생각이 들었습니다.

그리고 문자열을 배열로 바꾸어주면,

각 배열 요소들을 검사해주는 every()메서드를 이용하면 쉬울 것 같았습니다.

그리고 charCodeAt()을 통해서 아스키 코드 넘버로 

숫자인지 문자인지 판단하면 어떨까 싶었습니다.

 

function solution(s) {
    return s.length === (4 || 6) && s.split("").every(x =>  x.charCodeAt() < 65) ? true : false;
}

여기까지가 제 풀이방법이고

다른 풀이법도 살펴보았습니다.

 

function alpha_string46(s){
  var regex = /^\d{6}$|^\d{4}$/;
  return regex.test(s);
}

와우 정규표현식입니다.

test()는 정규표현식 regex의 메서드입니다.

정규식 표현을 만족하는지 여부를 true, false로 반환합니다.

 

정규표현식을 잘 알지 못해서 한번 문서를 보고 해석을 해봅니다.

참고 링크 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Regular_Expressions

 

정규 표현식 - JavaScript | MDN

정규 표현식은 문자열에 나타는 특정 문자 조합과 대응시키기 위해 사용되는 패턴입니다. 자바스크립트에서, 정규 표현식 또한 객체입니다.  이 패턴들은 RegExp의 exec 메소드와 test 메소드  ,

developer.mozilla.org

크게보면 ^\d{6}$^\d{4}$ 로 또는 으로 연결되어 있습니다.

\d 는 숫자를 의미하는데

{6}은 몇번 나타나는지를 말하는 것 같습니다.

/a{2}/는 aa 두번이라는 의미인데 지금 위에는 {6}앞에 \d만 있기 때문에

자리수(길이)로 표현되는 것 같습니다.

처음 ^은 시작을 의미하고,

마지막에 있는 $ 표시는 문자열의 끝을 의미하기 때문에

^\d{6}$ 는 6자리 문자열인 숫자를 말하고

^\d{4}$ 는 4자리 문자열인 숫자를 말하게 됩니다.

 

틀린 내용이 있다면 알려주세요 :)

 

Javascript 문자열 다루기 기본

반응형
Comments