개발공부/알고리즘

[Algorithm] 대문자 변환하기 (정규식 포함)

J-Plum 2023. 4. 21. 22:28
<html>

<head>
  <meta charset="UTF-8">
  <title>출력결과</title>
</head>

<!-- 대문자로 변환하기 -->
<body>
  <script>
    let str = "ItisTimeToStudy";

    function solution(str) {
      let answer = "";
      for (let word of str) {
        if (word.charCodeAt() >= 97 && word.charCodeAt() <= 125) answer += word.toUpperCase();
        else answer += word
      }
      return answer;
    }

    function solution2(str) {
      let answer = "";
      for (let word of str) {
        if (/[a-z]/.test(word)) {
          answer += word.toUpperCase();
        } else {
          answer += word;
        }
      }
      return answer;
    }

    function solution3(str) {
      let answer = "";
      for (let word of str) {
        // if (/[a-zA-Z].test(word)) {
        if (/[a-z]/i.test(word)) {
          answer += word.toUpperCase();
        }
      }
      return answer;
    }

    console.log(solution(str));
    console.log(solution2(str));
    console.log(solution3(str));
  </script>
</body>

</html>

 

 

solution2 는 정규식을 사용했습니다

/[a-z]/ 는 소문자를 찾으며 i를 붙이면 대소문자를 구분하지 않습니다
즉. /[a-z]/i , /[A-Z]/i , /[a-zA-Z]/ 모두 같습니다. 대소문자를 구분하지 않고 알바벳을 찾습니다.

solution2의 if문은 word가 앞의 정규식의 조건에 해당하는걸 포함하는지.

즉 a-z까지의 문자를 포함하는지를 true, false로 반환합니다.

소문자일때 toUpperCase() , 아니면(대문자일경우) else로 가서 answer에 더하기

 

하지만 solution3이 가장 좋은 것 같습니다

 

 

https://j-plum.tistory.com/87

링크에 알고리즘에 사용한 정규식에 대한 설명이 있으며,

정규식은 추후 별도로 정리하겠습니다