Récupérer ou remplacer dans une chaine de caractère, une chaine ou un mot situé entre deux mot ou une chaine

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 990 fois - Téléchargée 14 fois

Contenu du snippet

str_between(string, from, to, edit)

Si edit existe
le script remplace entre la chaine de caractère from et to dans la chaine string
"donc return string sans edit entre from et to"
Sinon
le script renvoie entre la chaine de caractère from et to dans la chaine string
"donc return entre from et to dans la chaine string"

Exemple:
string = "Le petit chaperon rouge traverse la forêt accompagné de sa grand-mère pour la raccompagner à la maison."
stringbetween = str_between(string, "chaperon-rouge", "la", " à traversé ");
//stringbetween -> "Le petit chaperon rouge A TRAVERSÉ la forêt accompagné de sa grand-mère pour la raccompagner à la maison."
Autre exemple
string = "La pomme tomba et Tom la ramassa aussi tôt."
stringbetween = str_between(string, "La", "tomba", " poire ");
//stringbetween -> "La poire tomba et Tom la ramassa aussi tôt."

Exemple de récupération:
string = "Le petit chaperon rouge traverse la forêt accompagné de sa grand-mère pour la raccompagner à la maison."
stringbetween = str_between(string, "chaperon-rouge", "la");
//stringbetween -> " traverse "
Autre exemple
string = "La pomme tomba et Tom la ramassa aussi tôt."
stringbetween = str_between(string, "La", "tomba");
//stringbetween -> " pomme "

Source / Exemple :


function str_between(string, from, to, edit){
    function validyTest(variable){
        if (typeof variable != "undefined") {
            return true;
        } else {
            return false;
        }
    }
    function str_replace(a, b, str) {return str_replace2(str, a, b);}
    function str_replace2(SRs, SRt, SRu) {
        SRRi = SRs.indexOf(SRt);
        SRRr = '';
        if (SRRi == -1) return SRs;
        SRRr += SRs.substring(0,SRRi) + SRu;
        if ( SRRi + SRt.length < SRs.length)
            SRRr += str_replace2(SRs.substring(SRRi + SRt.length, SRs.length), SRt, SRu);
        return SRRr;
    }
    function nospace(string){
    	if(string.indexOf("_")>=0){return str_replace("_", " ", string);
    	}else{return str_replace(" ", "_", string);}
    }
    string = nospace(string);
    to = nospace(to);
    from = nospace(from);
    if(validyTest(to)==true){
        position1 = string.indexOf(from);
        position2 = string.indexOf(to);
        content = str_replace(from, "", string.substring(position1, position2));
        content = str_replace(to, "", content);
    }else{
        position1 = string.indexOf(from);
        position2 = string.length;
        content = str_replace(from, "", string.substring(position1, position2));
        content = str_replace(to, "", content);
    }
    if(validyTest(edit)){
        return nospace(str_replace(content, edit, string));
    }else{
        return nospace(content);
    }
}

Conclusion :


Récupérer ou remplacer dans une chaine, une chaine ou un mot situé entre deux mot ou une chaine

A voir également

Ajouter un commentaire

Commentaires

cs_bobabar
Messages postés
12
Date d'inscription
mercredi 8 décembre 2004
Statut
Membre
Dernière intervention
8 avril 2013

Bonjour.
Merci pour ce script.
Tu n'aurai pas oublié de mettre la fonction nospace() ?
Cyreb
Messages postés
15
Date d'inscription
vendredi 28 février 2003
Statut
Membre
Dernière intervention
8 avril 2013

intéressant et utile

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.