le caractère "%" et les expressions régulières
Bonjour.
Voici une fonction qui a pour but de remplacer une chaine de caractères par une autre dans un DIV contenteditable.
La chaine à remplacer ressemble à ceci :
Code:
1 2 3 4
|
<div id="12345">
<div id="ad12345" style="width: 50%; float: left;">ICI, DU TEXTE</div>
</div> |
J'ai une fonction déclenchée par "onClick" sur plusieurs boutons qui permettent de transformer en et ça fonctionne.
Cette même fonction est sensée transformer en mais là, ça ne fonctionne pas du tout et probablement à cause du signe "%".
Voici la fonction Javascript qui permet ces changements :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
function modifierEncadre(encId, code, newValeur) {
encIdAddress = "ad"+encId;
var tailleDiv = document.getElementById(encId).offsetWidth;
var tailleSsDiv = document.getElementById(encIdAddress).offsetWidth;
var ratio = Math.ceil((tailleSsDiv/tailleDiv)*100);
if (code == "aFloat") {
valeur = getComputedStyle(document.getElementById(encIdAddress)).cssFloat;
} else if (code == "aWidth") {
var perc = String.fromCharCode(37);
valeur = ratio+perc;
}
str = document.getElementById(encId).innerHTML;
expReg = new RegExp(valeur, 'gi');
remplacement = str.replace(expReg, newValeur);
artTexte = document.getElementById("artTexte").innerHTML;
expRegFin = new RegExp(str, 'gi');
remplacementFinal = artTexte.replace(expRegFin,remplacement);
document.getElementById("artTexte").innerHTML=remplacementFinal;
} |
Pour le changement de largeur, je n'utilise pas
Code:
valeur = getComputedStyle(document.getElementById(encIdAddress)).width;
parce que cette dernière renvoie une valeur en px. Or, j'ai besoin d'une valeur en pourcentage.
J'espère avoir été assez explicite et surtout, que quelqu'un saura m'aider sur cette problématique.
Merci par avance.