정의 및 사용 방법
문자열에서 includes() 함수는
주어진 문자열에 특정 문자열이 포함되어 있는지 여부를 확인하고,
포함되어 있으면 true, 그렇지 않으면 false를 반환합니다.
이 함수를 사용하면 특정 문자열이 포함되는지 체크하는데 매우 유용합니다.
대소문자를 구분합니다.
기본 예제
const str = "반갑습니다! codingEverybody입니다.";
console.log(str.includes("codingEverybody")); // 출력: true
console.log(str.includes("CODINGEVERYBODY")); // 출력: false (대소문자 구분)
배열에서는 배열의 includes()가 배열에 특정 요소가 포함하는지 확인하는 함수입니다.
구문
str.includes(searchString)
str.includes(searchString, position)
str은 includes() 함수를 적용할 문자열입니다.
매개변수
searchString |
검색 대상이 되는 문자열입니다. 정규 표현식이 아니어야 합니다.
정규 표현식이 아닌 모든 값은 문자열로 강제 변환되므로 이 값을 생략하거나 undefined로 전달하면 includes()가 "undefined" 문자열을 검색하게 되어 일반적으로 원하는 동작이 아닐 수 있습니다. |
|---|---|
position |
옵션. 검색을 시작할 0 기반의 인덱스입니다.
생략하면 기본값으로 0이 사용됩니다. (문자열에서 인덱스는 0부터 시작합니다.) |
반환 값
문자열에서 빈 문자열("")를 포함하여 주어진 문자열이 포함되어 있으면 true를 그렇지 않으면 false를 반환합니다.
주의할 점
includes() 함수를 사용할 때에는 몇 가지 주의할 점이 있습니다.
대소문자를 구분
includes() 함수는 대소문자를 구분합니다.
const haystack = "Hello, World!";
const needle = "world";
const isNeedle = haystack.includes(needle); // false (대소문자 구분)
if (isNeedle) {
console.log(`문자열에 '${needle}'가 포함되어 있습니다.`);
} else {
console.log(`문자열에 '${needle}'가 포함되어 있지 않습니다.`);
}
// 출력: "문자열에 'world'가 포함되어 있지 않습니다."
정규 표현식 패턴을 사용할 수 없음
검색 대상이 되는 문자열은 정규 표현식이 아니어야 합니다. TypeError가 발생합니다.
const haystack = "Hello, World!";
const needle = /Hello/; // 정규 표현식이 아니어야 합니다. TypeError가 발생합니다.
const isNeedle = haystack.includes(needle);
if (isNeedle) {
console.log(`문자열에 '${needle}'가 포함되어 있습니다.`);
} else {
console.log(`문자열에 '${needle}'가 포함되어 있지 않습니다.`);
}
빈 문자열일 경우
빈 문자열("")은 모든 문자열의 시작과 끝 부분에 있다고 간주되므로, 빈 문자열을 검색하면 항상 true를 반환합니다.
const haystack = "환영합니다.";
const needle = "";
const isNeedle = haystack.includes(needle);
console.log(isNeedle); // 빈 문자열은 항상 true를 반환합니다.
이러한 동작은 문자열의 논리적 정의에 근거합니다. 빈 문자열은 어떤 문자열의 시작 부분이나 끝 부분에 존재하므로, 빈 문자열로 시작하거나 끝나는 모든 문자열에 대해 true를 반환하는 것이 자연스러운 결과입니다. 따라서, 이 개념은 자바스크립트뿐만 아니라 여러 프로그래밍 언어에서 보편적으로 적용됩니다.
includes() 함수의 다양한 활용 사례
includes() 함수는 문자열에 특정 문자열이 포함되어 있는지를 확인할 때 유용합니다.
예를 들어, 검색 기능이나 문자열 처리에 적합합니다. 다음은 includes() 함수의 사용 예시 중 일부입니다.
검색 기능 구현
const txt = "나는 사과와 바나나를 좋아해요.";
const searchTerm = "사과";
if (txt.includes(searchTerm)) {
console.log(`텍스트에 '${searchTerm}' 단어가 포함되어 있습니다.`);
} else {
console.log(`텍스트에 '${searchTerm}' 단어가 포함되어 있지 않습니다.`);
}
// 출력: "텍스트에 '사과' 단어가 포함되어 있습니다."
문자열 필터링
const content = '이 문장에는 원치 않는 단어가 포함되어 있습니다.';
const unwantedWords = ['원치 않는', '나쁜', '부적절한'];
unwantedWords.forEach(unwantedWord => {
if (content.includes(unwantedWord)) {
let fillteredContent = content.replace(unwantedWord, "***");
console.log(fillteredContent);
}
});
// 출력: "이 문장에는 *** 단어가 포함되어 있습니다."
코드 부연설명
배열의 forEach() 함수는 배열을 순회해서 각 요소를 콜백 함수로 처리하기 위한 함수입니다.
코드 부연설명
문자열의 replace() 함수는 문자열의 특정 부분을 검색하여 다른 문자열로 교체(replace)하는 함수입니다.
특정 문자열의 반복 횟수
// 대소문자 구분 없이 'hello' 문자열 찾기
const searchStr = "hello";
const str = "Hello, world! hello, universe!".toLowerCase();
let count = 0;
let startIndex = 0;
while (str.includes(searchStr, startIndex)) {
count++;
startIndex = str.indexOf(searchStr, startIndex) + 1;
}
console.log("찾는 문자열의 반복 횟수:", count);
// 출력: 찾는 문자열의 반복 횟수: 2
코드 부연설명
toLowerCase() 함수는 문자열을 소문자로 변환해서 반환하는 함수입니다.
코드 부연설명
while 문은 조건식이 참(true)인 동안 코드 블록을 반복 실행하는 반복문입니다.
코드 부연설명
문자열의 indexOf() 함수는 문자열에서 인수로 전달된 문자열를 찾아 첫 번째로 검색된(등장한) 문자열의 인덱스를 반환합니다.
호환성
| 메서드 |
데스크탑 Chrome
|
데스크탑데스크탑 Edge
|
데스크탑 Firefox
|
Safari
|
Node.js
|
|---|---|---|---|---|---|
includes()
|
41 | 12 | 40 | 9 | 4 |
명세서
| 명세서 사양 | |
|---|---|
includes()
|
ECMAScript® 2026 Language Specification #sec-string.prototype.includes |
같이 보기
- 자바스크립트 배열에 특정 요소 포함 여부 확인 - includes() 함수
- 자바스크립트 문자열 indexOf() 함수 – 문자열에서 문자의 위치 찾기
- 자바스크립트 문자열 lastIndexOf() 함수 – 특정 문자열의 마지막 등장한 위치 찾기
- 자바스크립트 문자열 search() 함수 – 개념 정리 및 사용 예제
- 자바스크립트 문자열 match() 함수 - 개념 정리 및 사용 예제
- 자바스크립트 substring() 함수 - 부분 문자열 추출
- 자바스크립트 startsWith() 함수 – 특정 문자열로 시작하는지 체크
- 자바스크립트 endsWith() 함수 – 특정 문자열로 끝나는지 체크