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

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

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.