Recherche toutes occurences caractères dans string [Résolu]

Signaler
Messages postés
64
Date d'inscription
mercredi 10 mai 2006
Statut
Membre
Dernière intervention
27 août 2010
-
Messages postés
64
Date d'inscription
mercredi 10 mai 2006
Statut
Membre
Dernière intervention
27 août 2010
-
Hello,

j'aimerais retrouver toutes les occurences du caractère ":" se trouvant dans un string. J'ai pensé à la méthode indexOf, mais elle ne retourne que la première occurence trouvée.
J'ai tenté avec une boucle while, mais il ne passe jamais dedans.
Voici mon code:

function recupereCaract() {
     var position = 0;
     var separator = ":";
     
     while(link.indexOf(separator) != -1)
     {
        var posSeparator = link.indexOf(separator);
        list_separators[position] = posSeparator;
        position++;
     }
}

Je pense que c'est ma condition dans le while qui n'est pas correcte, mais je ne vois pas comment je dois faire ce test.
Est-ce que quelqu'un aurait une idée ?

Merci d'avance !

forcels

5 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
je réexplique :
 indexOf fait une "recherche" dans un string,
 il commence sa recherche à partir du caractère dont l'adresse
    est donné dan son 2ème paramètre
si tu ne donnes pas ce 2ème paramètre, indexOf commence à 0
    string.indexOf("à rechercher",adresse début)

<§ article:1: mon lien §>.
    et un split ?

    var r="<§ article:1: mon lien §>" .split(":");
    ==>
    r[0]="<§ article"
    r[1]="1"
    r[2]="mon lien §>"
   

<hr />
Cordialement                Bul             [mon Site]     [M'écrire]<hr />En général, c'est absurde de généraliser.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
bonjour,

    indexOf accepte un 2ème paramètre qui permet de préciser
       à partir de quel caractère commencer la recherche.
    par défaut... il vaut 0 ( zéro )

    ça dépend de ce que tu veux faire, mais une petite expression
        régulière pourrait (??)  être "plus simple" ?
       string.replace(/:/,"toto")   replace ou search ou test ou ...

<hr />



Cordialement                Bul         [mon Site]     [M'écrire]<hr />
En général, c'est absurde de généraliser.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
il falait lire :
string.replace(/:/g,"toto")

<hr />




Cordialement                Bul         [mon Site]     [M'écrire]
<hr />




En général, c'est totalement absurde de généraliser.
Messages postés
64
Date d'inscription
mercredi 10 mai 2006
Statut
Membre
Dernière intervention
27 août 2010

Hello,

Je vais essayer d'être plus précise...

J'ai un string comme celui-ci: <§ article:1: mon lien §>.
Mon but c'est de pouvoir récupérer séparément article, 1 et mon lien.

J'avais pensé à la méthode indexOf, car elle retourne la position, pour ensuite récupérer mon texte grâce à substring().

Je pourrais faire en indiquant chaque fois la position précédente, mais le jour où j'ai plus de paramètres, cela ne va plus fonctionner, d'où mon utilisation du while...

Comment je peux faire le test dans le while, afin qu'il passe tant qu'une position est trouvée ?

Merci pour ton aide

forcels
Messages postés
64
Date d'inscription
mercredi 10 mai 2006
Statut
Membre
Dernière intervention
27 août 2010

Hello

En effet, la méthode split() effectue ce que je voulais.

Merci beaucoup pour ton aide bultez !

forcels