|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
|
Membre régulier
![]() Inscription : octobre 2007 Messages : 199 ![]() |
Bonsoir,
L'expression régulière suivante génère Citation:
Voici la chose : Code :
this.reg = /^[- A-Za-z éèçàùôî\\']+$/; L'éditeur de code javascript est connu : Zend Studio for eclipse 6.1.0. Je fatique un peu... ![]() Merci ! |
|
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : avril 2004 Messages : 4 794 ![]() |
bonjour,
je crois que tu dois échapper le signe - qui se trouve au début de ta regexp. Par ailleurs tu as mis deux fois l'espace dans cette expression. Code :
this.reg = /^[\\- A-Za-zéèçàùôî\\']+$/; |
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() Inscription : octobre 2007 Messages : 199 ![]() |
Merci
D'autant que j'ai découvert - un peu tard - qu'il est possible de décrire un caractère en hexadécimal. Cela me fera gagner du temps. Encore MERCI |
|
|
00
|
|
|
#4 | |
|
Expert Confirmé Sénior
![]() Romain VALERIPOOête Inscription : avril 2008 Messages : 2 572 ![]() |
Citation:
![]() Si tu mets 2 "\", le premier échappe le second, et le "-" suivant n'est donc, lui, pas échappé du tout... ou c'est moi qui me plante ? (idem pour la quote à la fin de la regexp)J'aurais plutot supposé que : >>> quand on génère une regexp à partir du constructeur RegExp(String s), la chaine est d'abord interprétée au passage du paramètre et une seconde fois quand la regexp s'exécute, donc là oui on double le "\". Exemple : Code :
this.reg = new Regexp("^[\\- A-Za-zéèçàùôî\\']+$"); ( ![]() Je n'ai pas le temps tout de suite de revérifier mais je vais refaire quelques tests plus tard, je dois faire une erreur grossière quelque part... ![]() Heu... non c'est mon test qui était faux, le raisonnement est correct
__________________
...pour les linguistes et les curieux >>> générateur de phrases aléatoires __________________ |
|
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() Inscription : octobre 2007 Messages : 199 ![]() |
La technique consistant à référencer les caractères ' par \x27 par exemple, fonctionne parfaitement....
Merci de votre aide ! Jean-Louis |
|
|
00
|
|
|
#6 | |
|
Expert Confirmé Sénior
![]() ![]() Inscription : avril 2004 Messages : 4 794 ![]() |
Citation:
Mais je me suis basé sur la précédente discussion de JLC83 |
|
|
|
00
|
|
|
#7 | |
|
Expert Confirmé Sénior
![]() Romain VALERIPOOête Inscription : avril 2008 Messages : 2 572 ![]() |
Citation:
![]() Mais bon il n'aurait pas été inutile de préciser, sur le forum Javascript, quand on publie un extrait hyper court et qui, de plus, est tout-à-fait valide en JS donc est implicitement présenté comme tel, que c'est en fait du "JS-généré-par-PHP". j'explique...)
__________________
...pour les linguistes et les curieux >>> générateur de phrases aléatoires __________________ |
|
|
|
00
|
|
|
#8 |
|
Membre régulier
![]() Inscription : octobre 2007 Messages : 199 ![]() |
J'insiste, il ne s'agit pas de PHP mais de JAVASCRIPT !
Certes édité dans Zend Studio for eclipse mais dans l'éditeur javascript. Pour l'impression de déjà vu, je reconnais que...
|
|
|
00
|
|
|
#9 | |||
|
Expert Confirmé Sénior
![]() Romain VALERIPOOête Inscription : avril 2008 Messages : 2 572 ![]() |
Citation:
Ce n'est pas encore du code Javascript. C'est du code serveur qui va être interprété pour générer du code Javascript réel à la demande de la page. Si tu exécutes la Regexp en question directement dans la console du navigateur, tu verras qu'elle n'est pas valide telle quelle. Dans la console, il faudrait exécuter Code :
En dernier ressort, si tu veux en avoir le coeur net, regarde le code généré par ton moteur PHP, celui qui est envoyé au navigateur : la Regexp ne comporte qu'un seul "\" à chaque caractère échappé alors que tu en mets deux dans ton code source sur Eclipse
__________________
...pour les linguistes et les curieux >>> générateur de phrases aléatoires __________________ |
|||
|
|
00
|
|
|
#10 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : avril 2004 Messages : 4 794 ![]() |
Je suis d'accord avec RomainVALERI, l'expression régulière n'est pas valide côté client (javascript), il faut effectivement 1 caractère \ pour échapper les caractères.
autant utiliser un éditeur de texte simple (notepad++ par exemple) si on veut faire du javascript |
|
|
00
|
|
|
#11 |
|
Membre régulier
![]() Inscription : octobre 2007 Messages : 199 ![]() |
Effectivement
Cela ne m'avait pas même effleuré ! Aujourd’hui, j'ai encore appris quelque chose : Merci
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com