[Exp Reg] Empêcher un antislash

Empêcher un antislash [Exp Reg] - HTML/CSS - Programmation

Marsh Posté le 30-12-2002 à 19:01:39    

Salut à tous,  
 
Je suis assez newbie dans la manipulation des expressions régulières et j'aimerais faire en sorte qu'un pseudo ne puisse contenir ni ", ni ', ni \, ni /.
 
Je fais une vérification en JS à l'envoi du formulaire (dans un echo PHP), la voici :
 

echo '
function checkfields()
{
var exp = new RegExp("^[^/\"\'\\]+$" );
 
if (!exp.test(document.forminscr.pseudo.value))
{
alert("Le pseudonyme entré contient des caractères non valides." );
return false;
}
 
return true;
}';


 
Mon ER empêche les ", les ', mais pas les \. Et même si je passe uniquement "^[^\\]+$" à la fonction, un pseudo "\" est accepté par la fonction test.
 
Merci de votre aide :jap:


Message édité par sielfried le 30-12-2002 à 21:39:39

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 30-12-2002 à 19:01:39   

Reply

Marsh Posté le 30-12-2002 à 20:07:42    

Essaye avec cette syntaxe :
 

var exp = /[^\"\'\\]+/;


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 30-12-2002 à 21:34:01    

gm_superstar a écrit :

Essaye avec cette syntaxe :
 

var exp = /[^\"\'\\]+/;




 
Apparemment ça marche encore moins bien...  :sweat:  
 
Y'a bien un pro des ER dans le coin non ?  :o


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 30-12-2002 à 22:42:15    

var exp = /^[^\"\'\\]+$/;


 
désolé j'ai oublié les ^ et $ de début et fin de chaine. Ca devrait être bon maintenant.


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 30-12-2002 à 23:39:53    

gm_superstar a écrit :

var exp = /^[^\"\'\\]+$/;


 
désolé j'ai oublié les ^ et $ de début et fin de chaine. Ca devrait être bon maintenant.


 
Apparemment déjà :
/^[^\"\'\\]+$/  
 
...il ne l'accepte pas comme ça (erreur JS, "]" attendu blabla :heink: ), il faut lui mettre les deux \\ en début de crochet (du moins pas à la fin) comme ça :  
 
/^[^\\\"\']+$/.  
 
Je pense que ça revient au même... mais ça ne marche pas non plus. Là il me refuse carrément tout pseudo. A titre d'indication à quoi sont censés servir les / en début et fin d'ER ? Parce qu'à ce détail prêt j'avais pensé à la même expression...
 
Merci de ton aide en tout cas :jap:


Message édité par sielfried le 30-12-2002 à 23:40:22

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 31-12-2002 à 00:20:47    

Heu... c'est très bizarre tout ça parce que j'ai testé avec Mozilla la regexp que je t'ai passée et ça marche très bien. Tu testes avec quel navigateur ?
 
les / en début en fin c'est juste des délimiteurs. C'est une autre manière de déclarer des regexp et la seule qui permette de détecter des \

Reply

Marsh Posté le 31-12-2002 à 00:51:16    

gm_superstar a écrit :

Heu... c'est très bizarre tout ça parce que j'ai testé avec Mozilla la regexp que je t'ai passée et ça marche très bien. Tu testes avec quel navigateur ?
 
les / en début en fin c'est juste des délimiteurs. C'est une autre manière de déclarer des regexp et la seule qui permette de détecter des \


 
Raaaah... ok, je n'avais rien compris. Je laissais var exp = new RegExp(...) pensant que / appartenait à l'ER en elle-même (d'autant que mon éditeur ne reconnaît pas ça en tant que délimiteur d'ER et me fait passer toute la suite de mon script pour du texte à cause du guillemet seul dedans :d).
 
Donc en effet, là ça marche. Reste que j'aimerais bien savoir pourquoi ça marchait pas dans mon ex. de départ, mais je suppose que ça doit être une merde avec les ", ' ou autre.
 
Merci de ton aide :jap:


Message édité par sielfried le 31-12-2002 à 00:52:02

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 06-05-2004 à 12:40:04    

Si ca peut aider du monde j'ai trouvé cette adresse par google:
http://www.asp-php.net/tutorial/scripting/regexp.php
 
Y'a des exemples (dont ceux avec les "\" :wahoo: )

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed