Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

replace produit un effet diff

16 réponses
Avatar
scalpa
Bonjour
Je modifie un texte contenu dans un textarea avec replace de la fa=C3=A7on
suivante :
1) Je me prot=C3=A8de de l'injection de code malicieux avec la fonction
HTMLEncode ??? (vrai/faux?)
2) J'utilise la m=C3=A9thode replace
function HTMLEncode(wText) { //http://www.editeurjavascript.com/forum/
topic,2,39285,0.html
if (typeof(wText) !=3D=3D "string") {
wText =3D wText.toString();
}
wText =3D wText.replace(/&/g, "&");
wText =3D wText.replace(/"/g, """);
wText =3D wText.replace(/</g, "&lt;");
wText =3D wText.replace(/>/g, "&gt;");
wText =3D wText.replace(/'/g, "&#146;");
return wText;
}
var input_txt =3D
HTMLEncode(document.getElementById('inputText').value);
input_txt =3D input_txt.replace(/([\w=C3=A9=C3=A7=C3=A2=C3=AA=C3=AE=C3=B4=
=C3=BB=C3=A0=C3=A8=C3=B9=C3=AB=C3=AF=C5=93=C3=A6]+)(?=3D[\s=E2=80=89?'=E2=
=80=99".,;!
=E2=80=A6?=C2=AB=C2=BB\-(\)])/gi, '<span style=3D"color: blue;" class=3D"No=
selected"
onclick=3D"pick(this);">$1<\/span>');

3) J'affiche le r=C3=A9sultat dans un textarea apr=C3=A8s quelques replace =
car
je me suis aper=C3=A7us qu'ie mettait les balises color et span en
majuscules...automatiquement :
MonExo =3D MonExo.replace(/(pick)/gi, "verif");
MonExo =3D MonExo.replace(/(color:)/ig, "color:");
MonExo =3D MonExo.replace(/(color: red)/ig, "color: blue");
MonExo =3D MonExo.replace(/(span>)/ig, "span>");
MonExo =3D MonExo.replace(/(<span)/ig, "<span");

4) Avec FireFox le contenu du textarea est celui escompt=C3=A9:
exemple :
<span style=3D"color: blue;" class=3D"selected"
onclick=3D"pick(this);">votre</span>
<span style=3D"color: blue;" class=3D"Noselected"
onclick=3D"pick(this);">texte</span>
Mais dans ie des apostrophes disparaissent... :
<span style=3D"color: blue" class=3Dselected onclick=3Dpick(this);>votre</
span>
<span style=3D"color: blue" class=3DNoselected onclick=3Dpick(this);>texte<=
/
span>

Quelqu'un sait-il pourquoi? Faut-il utiliser une syntaxe particuli=C3=A8re?
J'ai essay=C3=A9 d'=C3=A9crire la regex entre simple ' ou double " apostrop=
hes,
d'ajouter des \ avant " etc... sans succ=C3=A8s.
merci
pascal

6 réponses

1 2
Avatar
Pierre Goiffon
On 26/04/2010 10:43, SAM wrote:
Remplacer "<span style='color:red'>" par "<span class='red'>"
n'apporte rien du point de vue sémantique.



J'a rhien compris ... que vient faire la sémantique là-dedans ?



Je pense que Bruno donnait la remarque habituelle : il vaut mieux nommer
ses classes css par leur "sens" : titreniveau1 par exemple, plutôt que
"rougegras1-1". Ainsi, lorsque l'on modifiera la maquette on n'aura pas
à toucher au html mais juste au contenu de/des la feuille css.

Bon après, comme toujours la pratique peut être éloignée de la théorie,
et pour de bonnes raisons.
Mais disons que cette idée est une bonne pratique qui rend bien service
au moyen et long terme.
Avatar
Pierre Goiffon
On 26/04/2010 10:43, SAM wrote:
Remplacer "<span style='color:red'>" par "<span class='red'>"
n'apporte rien du point de vue sémantique.



J'a rhien compris ... que vient faire la sémantique là-dedans ?



Je pense que Bruno donnait la remarque habituelle : il vaut mieux nommer
ses classes css par leur "sens" : titreniveau1 par exemple, plutôt que
"rougegras1-1". Ainsi, lorsque l'on modifiera la maquette on n'aura pas
à toucher au html mais juste au contenu de/des la feuille css.

Bon après, comme toujours la pratique peut être éloignée de la théorie,
et pour de bonnes raisons.
Mais disons que cette idée est une bonne pratique qui rend bien service
au moyen et long terme.
Avatar
SAM
Le 4/26/10 11:45 AM, Pierre Goiffon a écrit :
On 26/04/2010 10:43, SAM wrote:
Remplacer "<span style='color:red'>" par "<span class='red'>"
n'apporte rien du point de vue sémantique.



J'a rhien compris ... que vient faire la sémantique là-dedans ?



Je pense que Bruno donnait la remarque habituelle : il vaut mieux nommer
ses classes css par leur "sens" : titreniveau1 par exemple, plutôt que
"rougegras1-1". Ainsi, lorsque l'on modifiera la maquette on n'aura pas
à toucher au html mais juste au contenu de/des la feuille css.



oui, ok.

Bon après, comme toujours la pratique peut être éloignée de la théorie,
et pour de bonnes raisons.
Mais disons que cette idée est une bonne pratique qui rend bien service
au moyen et long terme.



Là, en l'occurence, les class précédemment utilisées étaient
Noselected
et
selected
qui vont bien dans ce sens (ne pas me demander pourquoi la majuscule)
bien que seule celle 'selected' devrait servir utilement, mébon.

ça a dévié vers des histoires de couleurs,
alors pourquoi pas une class avec un nom de couleur ?
(on reste bien dans le même principe de nom de class "parlant")

l'élement
- sans class : bleu
- class 'green' : vert
- class 'selected' : gras + rouge
- class 'selected' + 'green' : gras + vert

sinon ce seront deSelected, selectedRouge et selectedVert
mézakoibon ?

allez, d'ac. nous utiliserons donc deSelected à la place de green
dès qu'on a résolu le fonctionnement du JS (if if or if bleu/rouge/vert)

<span class="selected deSelected">Mais sait-y c'qu'y veut ?</span>

--
sm
Avatar
SAM
Le 4/26/10 11:45 AM, Pierre Goiffon a écrit :
On 26/04/2010 10:43, SAM wrote:
Remplacer "<span style='color:red'>" par "<span class='red'>"
n'apporte rien du point de vue sémantique.



J'a rhien compris ... que vient faire la sémantique là-dedans ?



Je pense que Bruno donnait la remarque habituelle : il vaut mieux nommer
ses classes css par leur "sens" : titreniveau1 par exemple, plutôt que
"rougegras1-1". Ainsi, lorsque l'on modifiera la maquette on n'aura pas
à toucher au html mais juste au contenu de/des la feuille css.



oui, ok.

Bon après, comme toujours la pratique peut être éloignée de la théorie,
et pour de bonnes raisons.
Mais disons que cette idée est une bonne pratique qui rend bien service
au moyen et long terme.



Là, en l'occurence, les class précédemment utilisées étaient
Noselected
et
selected
qui vont bien dans ce sens (ne pas me demander pourquoi la majuscule)
bien que seule celle 'selected' devrait servir utilement, mébon.

ça a dévié vers des histoires de couleurs,
alors pourquoi pas une class avec un nom de couleur ?
(on reste bien dans le même principe de nom de class "parlant")

l'élement
- sans class : bleu
- class 'green' : vert
- class 'selected' : gras + rouge
- class 'selected' + 'green' : gras + vert

sinon ce seront deSelected, selectedRouge et selectedVert
mézakoibon ?

allez, d'ac. nous utiliserons donc deSelected à la place de green
dès qu'on a résolu le fonctionnement du JS (if if or if bleu/rouge/vert)

<span class="selected deSelected">Mais sait-y c'qu'y veut ?</span>

--
sm
Avatar
Bruno Desthuilliers
SAM a écrit :
Le 4/26/10 11:45 AM, Pierre Goiffon a écrit :
On 26/04/2010 10:43, SAM wrote:
Remplacer "<span style='color:red'>" par "<span class='red'>"
n'apporte rien du point de vue sémantique.



J'a rhien compris ... que vient faire la sémantique là-dedans ?



Je pense que Bruno donnait la remarque habituelle : il vaut mieux
nommer ses classes css par leur "sens" : titreniveau1 par exemple,
plutôt que "rougegras1-1". Ainsi, lorsque l'on modifiera la maquette
on n'aura pas à toucher au html mais juste au contenu de/des la
feuille css.



oui, ok.

Bon après, comme toujours la pratique peut être éloignée de la
théorie, et pour de bonnes raisons.
Mais disons que cette idée est une bonne pratique qui rend bien
service au moyen et long terme.



Là, en l'occurence, les class précédemment utilisées étaient
Noselected
et
selected
qui vont bien dans ce sens (ne pas me demander pourquoi la majuscule)
bien que seule celle 'selected' devrait servir utilement, mébon.

ça a dévié vers des histoires de couleurs,
alors pourquoi pas une class avec un nom de couleur ?
(on reste bien dans le même principe de nom de class "parlant")



Non. Le nom de couleur décrit la mise en forme, pas la sémantique. Ce
qui compte n'est pas que ce soit affiché en rouge ou vert, mais
*pourquoi* on veut l'afficher en rouge ou vert. "selected", oui, c'est
parlant.
Avatar
scalpa
Bonjour Stéphane

Merci pour ces précisions que j'étudierai à tête reposée (plus
tard...... les vacances étant terminées!).
J'améliorerai le code dans ce sens, pour l'instant cela fonctionne
quand même(exemple : http://www.scalpa.info/fr_gram_vbs2_clicmot4.php)
bien que cela ne soit pas très catholique ou orthodoxe c'est selon, du
point de vue du code;
Mais auparavant je dois réinstaller une bécane avec ie 6 ou 7 pour
essayer de comprendre pourquoi sous ie8 les " " disparaissent.......
et en plus pas partout!!!!
cf post du haut : <span style="color: blue" class=Noselected
onclick=pick(this);>texte</span>

Merci encore
Pascal C
1 2