Olivier Miakinen <om+news@miakinen.net> wrote:
As-tu regardé à quoi ressemble fonction après le toString() et avant le
replace() ? Il est probable que l'accolade est à la ligne suivante,
présentation la plus fréquente pour les fonctions définies sur plusieurs
lignes.
Ah ZUT ! effectivement....
mea culpa ;-)
le toString() me sort cette forme :
function setToRed(element)
{
element.style.backgroundColor = "red";
}
d'où le \n...
j'ai essayé en escapant (\{) :
Pfff... c'est exactement comme de rajouter un \ dans la classe de
caractères : comme tu ne sais pas ce que tu fais, tu es peut-être en
train de rajouter un bug car dans certains langages le \ n'est pas
supprimé quand il est inutile. Et surtout cela obscurcit le code.
euh c'est ce que j'avais retenu "{" est un métacaractère non ?
fonction = fonction.replace(/\{(.|\n)*/, '{...}');
ça donne exactement le même résultat curieux pour moi...
Ce qui est sûr c'est que ça ne pouvait pas arranger les choses, juste
les dégrader (tu aurais retrouvé la fonction complète).
Ayant compris qu'il y a un saut de ligne tu peux faire :
fonction = fonction.replace(/\n(.|\n)*/, '{...}');
OK, ça roule
--
Une Bévue