web-dev-qa-db-fra.com

Ajouter commence avec dans IE 11

IE 11 ne prend pas en charge startsWith avec des chaînes. ( Regardez ici )

Comment ajoutez-vous un prototype pour qu'il prenne en charge la méthode?

16
Sandah Aung

Directement de la page MDN , voici le polyfill:

if (!String.prototype.startsWith) {
    String.prototype.startsWith = function(searchString, position){
      position = position || 0;
      return this.substr(position, searchString.length) === searchString;
  };
}

Ceci est sûr à utiliser dans n'importe quel navigateur. Si la méthode existe déjà, ce code le verra et ne fera rien. Si la méthode n'existe pas, elle sera ajoutée au prototype String afin qu'elle soit disponible sur toutes les chaînes.

Vous ajoutez simplement ceci à l'un de vos fichiers JS à un endroit où il s'exécute au démarrage et avant d'essayer d'utiliser .startsWith().

38
jfriend00

Trouvé un moyen plus facile de résoudre ce problème,

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

comme sage pour trouver les fins avec utiliser ci-dessous le code,

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