String.prototype.endsWith()
사용법
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
|
---|---|---|---|---|
endsWith()
|
41 | 12 | 17 | 9 |
명세서
명세서 사양 | |
---|---|
endsWith()
|
ECMAScript Language Specification #sec-string.prototype.endswith |