JavaScript에서 문자열 안에 특정 문자가 몇 번 등장하는지 확인하는 가장 간단한 방법은 문자열을 처음부터 끝까지 순회하면서 해당 문자가 나타날 때마다 개수를 세는 것입니다.
예제
아래 예제에서는 for 반복문을 사용해 문자열의 각 문자를 하나씩 검사하고, 찾고자 하는 문자와 일치하면 카운트를 1씩 증가시킵니다.
let s = "hello world!";
let searchChar = "l";
let count = 0;
for(let i = 0; i < s.length; i++) {
if(s[i] == searchChar) {
count++;
}
}
console.log(count);실행 결과
3
코드 설명
위 코드의 동작 방식을 단계별로 살펴보면 다음과 같습니다.
- 문자열 순회:
s.length를 이용해 문자열 전체 길이만큼 반복문을 실행합니다. - 문자 비교: 인덱스 접근(
s[i])으로 각 위치의 문자를 추출하고, 찾으려는 문자(searchChar)와 비교합니다. - 카운트 증가: 일치하는 경우
count변수를 1 증가시킵니다.
결과적으로 "hello world!"라는 문자열에는 소문자 'l'이 총 3번 포함되어 있으므로, 콘솔에는 3이 출력됩니다.
대소문자를 구분하지 않고 세는 방법
만약 대소문자를 구분 없이 세고 싶다면, 문자열과 검색 문자를 모두 소문자로 변환한 뒤 비교하면 됩니다.
let s = "Hello World!";
let searchChar = "l";
let count = 0;
s = s.toLowerCase();
searchChar = searchChar.toLowerCase();
for(let i = 0; i < s.length; i++) {
if(s[i] === searchChar) {
count++;
}
}
console.log(count); // 3또한 문자 비교 시에는 동등 연산자(==)보다 타입까지 엄격하게 비교하는 일치 연산자(===)를 사용하는 것이 더 안전하고 권장되는 방식입니다.