정의 및 사용 방법
endsWith() 함수는
문자열이 특정 문자열로 끝나는지 체크합니다.
특정 문자열로 끝나면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
이 함수는 대소문자를 구분합니다.
기본 예제
const strEn = "Hello, world!";
console.log(strEn.endsWith("world!")); // true
console.log(strEn.endsWith("World!")); // false => 대소문자를 구분
console.log(strEn.endsWith("world")); // false
// 원본 문자열에서 검색이 끝날 것으로 예상되는 앞(왼쪽)에서 1부터 시작하는 인덱싱
console.log(strEn.endsWith("world", 12)); // true => 원본 문자열에서 12 번째로 끝나는 부분에 위치
const strKo = "환영합니다!";
console.log(strKo.endsWith("!")); // true
console.log(strKo.endsWith("환영합니다!")); // true
console.log(strKo.endsWith("xxx환영합니다!")); // false
문자열이 특정 문자열로 시작하는지 체크하려면 startsWith() 함수를 사용하세요.
endsWith() 함수의 형식은 다음과 같습니다.
구문
endsWith(searchString)
endsWith(searchString, endPosition)
매개변수
searchString |
필수. 확인할 문자열입니다.
(정규 표현식 패턴은 사용할 수 없습니다.) |
|---|---|
position |
옵션. searchString을 찾을 것으로 예상되는 끝 위치에 해당하는 문자열의 길이(searchString의 마지막 문자 인덱스에 1을 더한 값).
기본값은 원본 문자열의 길이( str.length)입니다. |
반환 값
searchString로 끝나면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
주의할 점
빈 문자열("")은 모든 문자열의 끝 부분에 있다고 간주되므로, 빈 문자열을 searchString으로 사용하면 항상 true를 반환합니다.
const str_1 = "Hello, world!";
console.log(str_1.endsWith("")); // true
const str_2 = "";
console.log(str_2.endsWith("")); // true
이러한 동작은 문자열의 논리적 정의에 근거합니다. 빈 문자열은 어떤 문자열의 끝 부분에 존재하므로, 빈 문자열로 끝나는 모든 문자열에 대해 true를 반환하는 것이 자연스러운 결과입니다. 따라서, 이 개념은 자바스크립트뿐만 아니라 여러 프로그래밍 언어에서 보편적으로 적용됩니다.
유용한 활용 예제
endsWith() 함수의 쓰임새를 잘 나타내는 활용 예제입니다.
예를 들어, 이미지 파일 경로에서 지원되는 확장자만 확인하는 방식이 자주 사용됩니다. 이 방법은 파일 업로드 시 검증에도 많이 쓰입니다.
/* 파일 확장자를 확인하는 함수 */
function checkImageFile(filePath) {
// 지원되는 이미지 파일 확장자 배열 목록(소문자로 작성)
const allowedExtensions = [".jpg", ".jpeg", ".png", ".gif"];
// 파일 경로를 소문자로 변환하여 비교
// endsWith() 함수는 대소문자를 구분하기 때문에
// 확장자가 소문자여도 대문자 확장자를 처리하지 못할 수 있기 때문임
const lowerCaseFilePath = filePath.toLowerCase();
// 파일 확장자가 목록 중 하나로 끝나는지 확인하는 부분
// some() 함수는 배열에서 조건을 만족하는 요소가 하나라도 있으면 true를 반환합니다.
const isImage = allowedExtensions.some(extension => {
return lowerCaseFilePath.endsWith(extension);
});
// 검사 결과에 따라 메시지를 출력
if (isImage) {
console.log("지원되는 이미지 파일입니다.");
} else {
console.log("지원되지 않는 파일 형식입니다.");
}
}
// 함수 호출 예시
checkImageFile("picture.jpg"); // 지원되는 이미지 파일입니다.
checkImageFile("document.pdf"); // 지원되지 않는 파일 형식입니다.
코드 부연설명
toLowerCase() 함수는 문자열을 소문자로 변환해서 반환합니다.
코드 부연설명
some() 함수는 배열의 특정 조건을 만족하는 요소가 있는지 확인합니다.
하나의 요소라도 조건을 만족하면 true를 반환하고 그렇지 않으면 false를 반환합니다.
호환성
| 메서드 |
데스크탑 Chrome
|
데스크탑데스크탑 Edge
|
데스크탑 Firefox
|
Safari
|
Node.js
|
|---|---|---|---|---|---|
endsWith()
|
41 | 12 | 17 | 9 | 4 |
명세서
| 명세서 사양 | |
|---|---|
endsWith()
|
ECMAScript Language Specification #sec-string.prototype.endswith |