2010-10-27 9 views
3

J'essaie de trouver une fonction équivalente pour Javascript. Ce que j'essaie de faire est de chercher l'URL actuelle et si elle a la première partie suivante de l'URL, alors faites quelque chose.Equivalent Javascript substr_count?

En PHP Je possède ce

if (substr_count($current_url, $root . $_SERVER['SERVER_NAME'] . '/shop/shop-gallery') { 
doSomething(); 
} 

Donc, tant qu'il correspond à cette URL et tous les sous URL comme /shop/shop-gallery/product1..etc, la déclaration sera vrai.

Maintenant, comment puis-je exécuter la même instruction exacte en javascript?

Merci les gars!

Répondre

5

Vous vous fait quoi compter les sous-chaînes ou tout simplement voir si elle est là? Si c'est le premier, alors utilisez la réponse de Frosty Z, si c'est la dernière, vous ne devriez pas utiliser substr_count en PHP en premier lieu, mais strpos à la place (c'est probablement plus rapide).

La version JS de ce dernier est la méthode String indexOf:

if (stringToSearch.indexOf(current_url) > -1) { 
    doSomething(); 
} 

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/indexOf

+0

Err ... Peut-être 'strpos' à la place de' substr'? Quoi qu'il en soit, je pense que votre réponse est plus appropriée puisque Rick veut vérifier si l'URL "commence par" quelque chose. –

+0

J'essaie de dire vrai si elle correspond à/site/shop-gallery ou/site/shop-gallery/quoi que ce soit après cela. –

+0

@Frosty Oops, penser une chose, en écrire une autre. Merci. – RoToRa

13

substr_count en JavaScript peut également être mis en œuvre comme suit:

var substr_count = hay_stack_string.split('search_substring').length - 1; 
+0

Méthode de génie !! –