IE 11不支持startsWith
字符串。 (Look here)
如何添加原型以便它支持该方法?
答案 0 :(得分:42)
直接来自MDN page,这是polyfill:
if (!String.prototype.startsWith) {
String.prototype.startsWith = function(searchString, position){
position = position || 0;
return this.substr(position, searchString.length) === searchString;
};
}
这可以安全地在任何浏览器中使用。如果该方法已存在,则此代码将看到该操作并且不执行任何操作。如果该方法不存在,它会将它添加到String原型中,以便它可用于所有字符串。
您只需将其添加到您在启动时以及尝试使用.startsWith()
之前执行的某个位置的JS文件中。
答案 1 :(得分:1)
找到一种更简单的解决方法,
function startsWith(str, word) {
return str.lastIndexOf(word, 0) === 0;
}
喜欢在代码下方找到结尾,
function endsWith(str, word) {
return str.indexOf(word, str.length - word.length) !== -1;
}
答案 2 :(得分:0)
我一直在使用这个polyfill:
if (typeof String.prototype.startsWith != 'function') {
String.prototype.startsWith = function(prefix) {
return this.slice(0, prefix.length) == prefix;
};
}
答案 3 :(得分:0)
您可以使用它。它可以与“ Internet Explorer 11”和大多数最新的浏览器一起使用。 此代码的优势之一是,如果默认的“ startsWith”和“ endsWith”可与最新的浏览器一起使用,那么这些功能就可以完成工作。
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'");
}
答案 4 :(得分:0)
if (!String.prototype.endsWith) {
String.prototype.endsWith = function (text) {
return this.indexOf(text, this.length - text.length) !== -1;
};
}
if (!String.prototype.startsWith) {
String.prototype.startsWith = function (text) {
return this.lastIndexOf(text, 0) === 0;
};
}