Remplacer des caractères précédant d'autres caractères avec JavaScript

Concept et utilisation

La fonction strReplaceBefore() permet de remplacer un ou plusieurs caractère(s) précédant un au plusieurs autre(s) caractère(s) spécifique(s).

Fonction

strReplaceBefore()

Dans une chaine de caractères de départ, remplace une chaine de caractères précédant une chaine de caractères suivante, par une chaine de caractères remplaçante, et retourne la chaine modifiée.

Syntaxe
strReplaceBefore(chaine_depart, chaine_precedente, chaine_remplacante, chaine_suivante, trouver_partout);
Paramètres
chaine_depart(String)

Le paramètre chaine_depart de la fonction strReplaceBefore() définit la chaine de caractères de départ dans laquelle effectuer un remplacement.

chaine_precedente(String)

Le paramètre chaine_precedente de la fonction strReplaceBefore() définit la chaine de caractères qui sera remplacée par une chaine de caractère de remplacement lorsqu'elle est suivie par une chaine de caractères spécifique.

chaine_remplacante(String)

Le paramètre chaine_remplacante de la fonction strReplaceBefore() définit la chaine de caractères qui remplace la chaine de caractères précédant une chaine de caractères spécifiques.

chaine_suivante(String)

Le paramètre chaine_suivante de la fonction strReplaceBefore() définit la chaine de caractères qui doit suivre la chaine de caractères à remplacer.

trouver_partout(Boolean)

Le paramètre trouver_partout de la fonction strReplaceBefore() définit par une valeur booléenne si toutes les occurrences contenues dans la chaine de départ doivent être remplacées.

Si ce paramètre est omis, la valeur par défaut false sera utilisée.

Exemple de remplacements d'une chaine de caractères précédée par une autre

var chaine_depart = "aabbbaabbbaa";
var chaine_precedente  = "bb";
var chaine_remplacante = "xx";
var chaine_suivante    = "aa";

strReplaceBefore(chaine_depart, chaine_precedente, chaine_remplacante, chaine_suivante);
// Renvoie : 'aabxxaabbbaa'

var remplacer_toutes = true;

strReplaceBefore(chaine_depart, chaine_precedente, chaine_remplacante, chaine_suivante, remplacer_toutes);
// Renvoie : 'aabxxaabxxaa'

Code source de la fonction

function strReplaceBefore(a,b,c,d,e){
  return a.replace(new RegExp(b+"[^"+b+"]{"+b.length+"}",(e?'g':'')),c+d);
}
^