125 votes

.includes () ne fonctionne pas dans Internet Explorer

Ce code ne fonctionne pas dans Internet Explorer. Une alternative?

 "abcde".includes("cd")
 

152voto

Phillip Points 1117

String.prototype.includes est, comme vous l'écrivez, non pris en charge dans Internet Explorer (ou Opéra).

Au lieu de cela, vous pouvez utiliser String.prototype.indexOf. #indexOf renvoie l'index du premier caractère de la sous-chaîne si elle est dans la chaîne, sinon elle renvoie -1. (Un peu comme le Tableau équivalent)

var myString = 'this is my string';
myString.indexOf('string');
// -> 11

myString.indexOf('hello');
// -> -1

MDN a un polyfill pour includes l'aide indexOf: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/includes#Polyfill

EDIT: Opera supporte includes de la version 28.

39voto

Prasun Points 161

Ou mettez simplement ceci dans un fichier Javascript et passez une bonne journée :)

 String.prototype.includes = function (str) {
  var returnValue = false;

  if (this.indexOf(str) !== -1) {
    returnValue = true;
  }

  return returnValue;
}
 

11voto

deeveeABC Points 452

includes () n'est pas supporté par la plupart des navigateurs. Vos options sont soit d'utiliser

-polyfill from MDN https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/includes

ou d'utiliser

-Indice de()

 var str = "abcde";
var n = str.indexOf("cd");
 

Ce qui vous donne n = 2

Ceci est largement pris en charge.

9voto

Joe Points 938

Essayez d'exécuter ci-dessous(sans solution) d'abord pour voir le résultat dans IE

console.log("abcde".includes("cd"));

Maintenant exécuter ci-dessous un avec fix et vérifier le résultat

if (!String.prototype.includes) {
  String.prototype.includes = function (str) {
    return this.indexOf(str) !== -1;
  }
}
console.log("abcde".includes("cd"));

4voto

Skwall Points 31

Celui-ci peut être meilleur et plus court:

 function stringIncludes(a, b) {
    return a.indexOf(b) >= 0;
}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X