업데이트 (2015 년 11 월 24 일) :
이 답변은 원래 2010 년 (6 년 전)에 게시되었으므로 다음과 같은 통찰력있는 의견에 유의하십시오.
원래 답변 :
나는 이것이 1 년 된 질문이라는 것을 알고 있지만 이것도 필요하며 크로스 브라우저를 작동시켜야합니다. 모든 사람의 답변과 의견을 결합 하고 약간 단순화합니다.
String.prototype.endsWith = function(suffix) {
return this.indexOf(suffix, this.length - suffix.length) !== -1;
};
- 부분 문자열을 만들지 않습니다
indexOf
빠른 결과를 위해 고유 기능 사용
indexOf
앞의 건너 뛰기 의 두 번째 매개 변수를 사용하여 불필요한 비교 를 건너 뜁니다.
- Internet Explorer에서 작동
- 정규식 합병증 없음
또한 기본 데이터 구조의 프로토 타입에서 물건을 채우고 싶지 않은 경우 독립형 버전이 있습니다.
function endsWith(str, suffix) {
return str.indexOf(suffix, str.length - suffix.length) !== -1;
}
편집 : 의견에서 @hamish가 지적했듯이 안전한면에서 오류를 일으키고 구현이 이미 제공 typeof
되었는지 확인하려면 다음과 같이 확인을 추가하면됩니다 .
if (typeof String.prototype.endsWith !== 'function') {
String.prototype.endsWith = function(suffix) {
return this.indexOf(suffix, this.length - suffix.length) !== -1;
};
}