Bonjour,

Je cherche à faire un petit script simple qui va convertir dans une chaine les symboles & é " ' ( - è _ ç à de notre clavier français en valeurs numériques, à savoir 1 2 3 4 5 6 7 8 9 0.

J'utilise donc les RegExp, mais 2 choses me posent problème :

- d'abord, comment faire la conversion de l'ensemble des caractères en 1 seule fois ? en l'état, j'ai besoin de 10 lignes du type :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
val = val.replace(new RegExp("&" ,"g"), '1');
ce qui vous en conviendrez n'est pas élégant du tout.

- Ensuite, j'ai un problème pour le 5 qui correspond au symbole "("... J'écrit donc :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
val = val.replace(new RegExp("\(" ,"g"), '5');
et malgré la protection via l'antislash, j'ai invariablement la même erreur : unterminated parenthetical.

EDIT : J'ai trouvé la solution, il faut faire une double protection : un protection pour le symbole \ et une protection pour le symbole (, ce qui donnr la ligne suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
val = val.replace(new RegExp("\\\(" ,"g"), '5');
Pour le reste, j'ai pas encore de solution
Enfin, il me semble que le symbole - devrait également être protégé... Pourtant, que j'écrive :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
val = val.replace(new RegExp("\-" ,"g"), '6');
ou

Code : Sélectionner tout - Visualiser dans une fenêtre à part
val = val.replace(new RegExp("-" ,"g"), '6');
Le résultat est le même : ça marche... Dans un soucis de compréhension, quelqu'un aurait-il l'amabilité de m'expliquer pourquoi ?

En vous remerciant par avance.