Ответ 1
Реализовано endsWith
, как показано ниже
String.prototype.endsWith = function(pattern) {
var d = this.length - pattern.length;
return d >= 0 && this.lastIndexOf(pattern) === d;
};
У меня есть функция ниже, которая отлично работает в Chrome, но она дает ниже ошибку в IE10
SCRIPT438: Object doesn't support property or method 'endsWith'
function getUrlParameter(URL, param){
var paramTokens = URL.slice(URL.indexOf('?') + 1).split('&');
for (var i = 0; i < paramTokens.length; i++) {
var urlParams = paramTokens[i].split('=');
if (urlParams[0].endsWith(param)) {
return urlParams[1];
}
}
}
Может кто-нибудь сказать мне, что случилось с этой функцией?
Реализовано endsWith
, как показано ниже
String.prototype.endsWith = function(pattern) {
var d = this.length - pattern.length;
return d >= 0 && this.lastIndexOf(pattern) === d;
};
Вы должны использовать следующий код для реализации endsWith
в браузерах, которые его не поддерживают:
if (!String.prototype.endsWith) {
String.prototype.endsWith = function(searchString, position) {
var subjectString = this.toString();
if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {
position = subjectString.length;
}
position -= searchString.length;
var lastIndex = subjectString.lastIndexOf(searchString, position);
return lastIndex !== -1 && lastIndex === position;
};
}
Это прямо из Mozilla Developer Network и соответствует стандарту, в отличие от другого ответа, предоставленного до сих пор.