Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript에서 문자열의 단어 수를 계산하는 방법 – 정규식 활용 가이드

정규 표현식(Regular Expression)을 사용하면 JavaScript에서 주어진 문자열의 단어 수를 손쉽게 계산할 수 있습니다. 문자열에 포함된 단어를 정확하게 세기 위해서는 몇 가지 전처리 과정을 거쳐야 하며, 이 글에서는 그 단계를 하나씩 살펴보겠습니다.

단어 수 계산 시 고려해야 할 사항

문장이나 문단은 여러 개의 단어가 공백으로 구분되어 이루어져 있습니다. 그런데 실제 문자열에서는 단어 사이에 공백이 하나만 있는 것이 아니라, 두 칸 이상의 연속된 공백이나 줄바꿈 앞뒤의 불필요한 공백도 존재할 수 있습니다. 따라서 정확한 단어 수를 구하려면 개발자는 이러한 모든 경우를 고려해야 합니다.

1단계: 문자열 앞뒤의 공백 제거

먼저 문자열 시작 부분과 끝 부분에 있는 공백을 제거합니다. 아래 정규 표현식은 문자열의 맨 앞과 맨 뒤에 위치한 공백을 삭제합니다.

str.replace(/(^\s*)|(\s*$)/gi, "");

2단계: 연속된 공백을 하나의 공백으로 변환

두 칸 이상 반복되는 공백을 하나의 공백으로 줄여줍니다.

str.replace(/[ ]{2}/gi, " ");

3단계: 줄바꿈 앞의 공백 제거

새로운 줄(new line) 앞에 붙어 있는 공백을 제거합니다.

str.replace(/\n /, "\n");

위의 모든 단계를 수행하면 단어들이 하나의 공백으로만 구분된 깔끔한 문자열을 얻을 수 있습니다. 이후 split() 메서드를 사용해 문자열을 분할하면 각 단어가 배열 요소로 변환됩니다. 마지막으로 length 속성을 통해 배열의 길이, 즉 단어의 개수를 확인할 수 있습니다.

예제 코드

<html>
<body>
   <script>
      function countWords(str) {
         str = str.replace(/(^\s*)|(\s*$)/gi,"");
         str = str.replace(/[ ]{2}/gi," ");
         str = str.replace(/\n /,"\n");
         return str.split(' ').length;
      }
      document.write(countWords("   Tutorix is one of the best E-learning   platforms"));
   </script>
</body>
</html>

실행 결과

8

위 예제에서 입력 문자열에는 앞뒤 공백과 중간에 두 칸짜리 공백이 포함되어 있지만, 전처리 과정을 거친 후 정확히 8개의 단어가 계산되는 것을 확인할 수 있습니다. 이처럼 정규 표현식과 split() 메서드를 조합하면 어떤 형태의 문자열이든 신뢰성 있게 단어 수를 구할 수 있습니다.