IE 11 не поддерживает startsWith
со строками. (Посмотрите здесь)
Как добавить прототип, чтобы он поддерживал метод?
IE 11 не поддерживает startsWith
со строками. (Посмотрите здесь)
Как добавить прототип, чтобы он поддерживал метод?
Найден более простой способ исправить это,
function startsWith(str, word) {
return str.lastIndexOf(word, 0) === 0;
}
как мудрый, чтобы найти endswith использование ниже кода,
function endsWith(str, word) {
return str.indexOf(word, str.length - word.length) !== -1;
}
Я использовал этот polyfill:
if (typeof String.prototype.startsWith != 'function') {
String.prototype.startsWith = function(prefix) {
return this.slice(0, prefix.length) == prefix;
};
}
Вы можете использовать это. Он работает с 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'");
}