Existe-t-il une fonction équivalente en JavaScript ou jQuery similaire à strpos
en PHP?
Je souhaite localiser une chaîne dans un élément sur une page. La chaîne que je recherche est:
td class="SeparateColumn"
Je voudrais quelque chose où je puisse l'exécuter comme ceci pour trouver:
if $("anystring") then do it
Je suppose que vous voulez dire vérifier si une chaîne contient un caractère et la position dans la chaîne – vous souhaitez utiliser la méthode indexOf()
d'une chaîne dans JS. Voici les documents pertinents .
D'accord, alors vous souhaitez rechercher toute la page! Le sélecteur :contains()
fera. Voir les documents jQuery pour :contains
.
Pour rechercher tous les éléments de la page, utilisez
var has_string = $('*:contains("search text")');
Si vous récupérez les éléments jQuery, la recherche a été une réussite. 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.
Vous n'avez pas besoin de jquery pour cela – le vieux Javascript ne fonctionnera pas bien, en utilisant la méthode .indexof()
.
Cependant, si vous voulez vraiment une correspondance de syntaxe exacte pour les strpos de PHP (), quelque chose comme ça le ferait:
function strpos (haystack, needle, offset) { var i = (haystack+'').indexOf(needle, (offset || 0)); return i === -1 ? false : i; }
Note: Cette fonction est prise ici: http://phpjs.org/functions/strpos:545
JSFiddle