39 votes

équivalent jQuery ou JavaScript de la fonction PHP strpos pour rechercher une chaîne sur une page

Existe-t-il une fonction équivalente en JavaScript ou en jQuery similaire à strpos en PHP?

Je veux localiser une chaîne à l'intérieur d'un élément sur une page. La chaîne que je cherche est:

 td class="SeparateColumn"
 

Je voudrais quelque chose où je peux l'exécuter comme ceci pour trouver:

 if $("anystring")
  then do it
 

62voto

JAL Points 11164

Je suppose que vous voulez dire vérifier si une chaîne contient un personnage, et la position dans la chaîne que vous souhaitez utiliser l' indexOf() méthode de d'une chaîne en JS. Voici les docs pertinents.


Okay, si vous souhaitez une recherche sur toute la page! L' :contains() sélecteur va le faire. Voir le jQuery docs pour :contains.

À la recherche de chaque élément dans la page, utilisez

var has_string = $('*:contains("search text")');

Si vous obtenez des éléments jQuery dos, puis la recherche a été un succès. Par exemple, sur cette même page

var has_string=$('*:contains("Alex JL")').length
//has_string is 18
var has_string=$('*:contains("horsey rodeo")').length
//has_string if 0. So, you could an `if` on this and it would work as expected.

42voto

Spudley Points 85371

Vous n’avez pas besoin de jquery pour cela - javascript vieux plaira très bien, en utilisant la méthode .indexof() .

Cependant, si vous voulez vraiment une correspondance de syntaxe exacte pour strpos () de PHP, quelque chose comme ceci le ferait:

 function strpos (haystack, needle, offset) {
  var i = (haystack+'').indexOf(needle, (offset || 0));
  return i === -1 ? false : i;
}
 

Remarque: Cette fonction est tirée d'ici: http://phpjs.org/functions/strpos:545

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