--- title: String.prototype.includes() slug: Web/JavaScript/Reference/Global_Objects/String/includes tags: - JavaScript - Méthode - Prototype - Reference - String translation_of: Web/JavaScript/Reference/Global_Objects/String/includes original_slug: Web/JavaScript/Reference/Objets_globaux/String/includes ---
La méthode includes()
détermine si une chaîne de caractères est contenue dans une autre et renvoie true
ou false
selon le cas de figure.
Le code source de cet exemple interactif est disponible dans un dépôt GitHub. Si vous souhaitez contribuez à ces exemples, n'hésitez pas à cloner https://github.com/mdn/interactive-examples et à envoyer une pull request !
str.includes(chaîneRecherchée); str.includes(chaîneRecherchée, position);
chaîneRecherchée
position
{{optional_inline}}position
est 0.true
si la chaîne de caractères contient la sous-chaîne recherchée, false
sinon.
Cette méthode détermine si une chaîne de caractères est contenue dans une autre.
includes()
est sensible à la casse. Par exemple, l'expression suivante nous retournera false
:
'Baleine bleue'.includes('baleine'); // false
includes()
const str = "Être ou ne pas être, telle est la question."; console.log(str.includes("Être")); // true console.log(str.includes("question")); // true console.log(str.includes("pléonasme")); // false console.log(str.includes("Être", 1)); // false console.log(str.includes("ÊTRE")); // false console.log(str.includes("")); // true
Cette méthode a été ajoutée à la spécification ECMAScript 2015 et n'est peut-être pas encore disponible dans toutes les implémentations JavaScript.
Cependant, vous pouvez facilement {{Glossary('polyfill')}} cette méthode pour de vieux navigateurs :
if (!String.prototype.includes) { String.prototype.includes = function(search, start) { 'use strict'; if (search instanceof RegExp) { throw TypeError('first argument must not be a RegExp'); } if (start === undefined) { start = 0; } return this.indexOf(search, start) !== -1; }; }
Spécification | État | Commentaires |
---|---|---|
{{SpecName('ESDraft', '#sec-string.prototype.includes', 'String.prototype.includes')}} | {{Spec2('ESDraft')}} | |
{{SpecName('ES6', '#sec-string.prototype.includes', 'String.prototype.includes')}} | {{Spec2('ES6')}} | Définition initiale. |
Le tableau de compatibilité de cette page a été généré à partir de données structurées. Si vous souhaitez contribuer à ces données, n'hésitez pas à envoyer une pull request sur https://github.com/mdn/browser-compat-data.
{{Compat("javascript.builtins.String.includes")}}
Les versions de Firefox allant de Firefox 18 à Firefox 39 utilisent cette méthode avec le nom contains()
. Cette méthode a été renommée en includes()
via {{bug(1102219)}} pour la raison suivante :
Il a été rapporté que certains sites web utilisant MooTools 1.2 plantaient sur Firefox 17. Cette version de MooTools vérifie que String.prototype.contains()
existe bien, et si ce n'est pas le cas, ajoute sa propre fonction similaire. Avec l'introduction de cette fonction dans Firefox 17, le comportement de ce contrôle a changé de telle manière qu'il cause un plantage du code de MooTools implémenté pour String.prototype.contains()
. En conséquence, cette implémentation a été désactivée de Firefox 17. String.prototype.contains()
est ainsi disponible sur une version ultérieure : Firefox 18 lorsque MooTools a déclenché la sortie de la version 1.2.6.
MooTools 1.3 force sa propre version de String.prototype.includes()
, les sites Web l'implémentant ne sont donc pas perturbés. Néanmoins, il faut noter que les signatures des méthodes diffèrent entre MooTools 1.3 et ECMAScript 2015 (pour le second paramètre). MooTools 1.5+ a modifié sa signature afin de prendre en compte le standard de ES2015.
Dans Firefox 48, la méthode String.prototype.contains()
a été retirée. String.prototype.includes()
doit être utilisée à la place.