Подтвердить что ты не робот

Добавление начинается с IE 11

IE 11 не поддерживает startsWith со строками. (Посмотрите здесь)

Как добавить прототип, чтобы он поддерживал метод?

4b9b3361

Ответ 1

Прямо от страницы

Ответ 2

Найден более простой способ исправить это,

function startsWith(str, word) {
    return str.lastIndexOf(word, 0) === 0;
}

как мудрый, чтобы найти endswith использование ниже кода,

function endsWith(str, word) {
    return str.indexOf(word, str.length - word.length) !== -1;
}

Ответ 3

Я использовал этот polyfill:

if (typeof String.prototype.startsWith != 'function') {
    String.prototype.startsWith = function(prefix) {
        return this.slice(0, prefix.length) == prefix;
    };
}

Ответ 4

Вы можете использовать это. Он работает с Internet Explorer 11 и большинством новейших браузеров. Одним из преимуществ этого кода является то, что, если по умолчанию "арты с "и" Концы "работают с вашим последним браузером, тогда эти функции выполняют свою работу.

function startsWith(str, prefix) {
	if (str.length < prefix.length){ 
		return false;
	}	
	if(String.prototype.startsWith) {
		return str.startsWith(prefix);
	}	
	//return str.slice(0, prefix.length) == prefix;
	return str.substring(0, prefix.length) === prefix;	
}
 
function endsWith(str, suffix) {
	if (str.length < suffix.length){
		return false;
	}	
	if(String.prototype.endsWith) {
		return str.endsWith(suffix);
	}
	return str.substring(str.length - suffix.length, str.length) === suffix;	
}    

/* usage */
var myHtml = "<strong>This is html content</strong>";
var myString = "This is simlpe text for test";

if(startsWith(myHtml, "<strong>")){
	console.log("start with <strong>"); 
}
if(startsWith(myString, 'This')){
	console.log("start with 'This'"); 
}

if(endsWith(myHtml, "</strong>")){
	console.log("ends with </strong>"); 
}

if(endsWith(myString, 'test')){
	console.log("ends with 'test'"); 
}