Paris, photo, humeurs, un peu de HTML/CSS pour faire sérieux. Feinte innocence et vraie naïveté (ou vice-versa). Encore un blog qui agite ses petits bras en couinant "Viens me lire !"
Pour chercher et trouver la première occurrence d'un caractère particulier dans une chaîne de caractères on emploie la méthode indexOf de l'objet String :
var v="Jus de méninges"; var i=v.indexOf('m'); /* i vaut 7 */ La méthode renvoie une valeur comprise entre 0 et v.length-1 si la recherche réussit. Si elle échoue la méthode renvoie -1.
La méthode accepte aussi un deuxième argument (facultatif, 0 par défaut) pour indiquer la position de début de la recherche :
var v="Jus de méninges"; var i=v.indexOf('s'); /* i vaut 2 : fin du mot 'Jus' */ var i=v.indexOf('s',4); /* i vaut 15 : fin du mot 'méninges' */ Pour chercher et trouver la première occurrence d'une valeur particulière dans un tableau on emploie la méthode indexOf de l'objet Array… mais cette méthode n'existe qu'à partir de la version 1.6 de JavaScript, et tous les navigateurs ne sont pas à ce niveau. Voici donc de quoi l'ajouter si elle n'existe pas déjà :
if (!Array.prototype.indexOf) Array.prototype.indexOf=function(s,iFrom) { if (typeof iFrom == 'undefined') iFrom=0; for(var i=iFrom,iMax=this.length; i<iMax; i++) if (this[i]==s) return i; return -1; }; Si le navigateur connaît déjà cette méthode le test initial échoue : pas besoin de réinventer la roue. Cette méthode fonctionne de la même manière que son analogue pour les chaînes :
var v=["Jus","de","méninges"]; /* tableau à trois éléments */ var i=v.indexOf('Jus'); /* i vaut 0 : premier élément du tableau */ var i=v.indexOf('jus'); /* i vaut -1 : échec à cause de majuscule/minuscule */ var i=v.indexOf('jus',1); /* i vaut -1 : échec car recherche à partir du 2è mot */ On peut de la même manière créer la méthode lastIndex pour chercher à partir de la fin du tableau.
Pour mémoire : d'autres liens JavaScript