7417 votes

Comment puis-je vérifier si une chaîne contient une autre sous-chaîne de caractères en JavaScript?

Comment puis-je vérifier si une chaîne contient une autre sous-chaîne de caractères en JavaScript?

Généralement, je m'attends à une String.contains() méthode, mais il ne semble pas en être un.

15155voto

Fabien Ménager Points 45472

indexOf renvoie la position de la chaîne dans l'autre chaîne. Si pas trouvé, il renvoie -1:

var s = "foo";
alert(s.indexOf("oo") > -1);

867voto

Avi Flax Points 14898

Vous pouvez facilement ajouter un contains méthode de Chaîne avec cette déclaration:

String.prototype.contains = function(it) { return this.indexOf(it) != -1; };

Remarque: voir les commentaires ci-dessous pour un argument valable pour ne pas l'utilisation de ce. Mon conseil: utilisez votre propre jugement.

460voto

Victor Points 3774

Le problème avec ton code, c'est que JavaScript est sensible à la casse. Votre appel de méthode

indexof()

devrait en fait être

indexOf()

Essayez de fixer et de voir si cela aide:

if (test.indexOf("title") !=-1) {
    alert(elm);
    foundLinks++;
}

358voto

pixeline Points 8713
var index = haystack.indexOf(needle);

248voto

Tardis Points 859

Vous pouvez utiliser le JavaScript search() méthode.

La syntaxe est: string.search(regexp)

Elle retourne la position du match, ou -1 si aucune correspondance n'est trouvée.

Voir des exemples: jsref_search

Vous n'avez pas besoin d'un compliqué la syntaxe d'expression régulière. Si vous n'êtes pas familier avec eux un simple st.search("title") le fera. Si vous voulez que votre test pour être sensible à la casse, alors vous devriez le faire st.search(/title/i).

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