[Javascript][résolu] Empêcher les posts monosmilesques

Empêcher les posts monosmilesques [Javascript][résolu] - HTML/CSS - Programmation

Marsh Posté le 08-02-2005 à 16:07:09    

:hello:  
 
Voilà, je suis nul en JavaScript :D et j'ai le code suivant :
 

Code :
  1. if (document.post.message.value.length < 5) {
  2.       formErrors = "{L_EMPTY_MESSAGE}";
  3.    }


 
qui sert à tester si le message que l'utilisateur veut poster est suffisament long et je voudrais l'améliorer avec une expression régulière pour que ça teste si le message posté est un post monosmilesque (les posts monosmilesques n'apportent généralement rien au débat). Le code des smileys est :co de: (sans l'espace au milieu). Donc pour les smileys n'excédant pas 4 caractères, le travail est déjà fait (length < 5) mais je ne veux pas augmenter ce nombre.  
Alors, comment faire, si le code du smiley dépasse cette limite, sachant qu'il ne faut pas que le script confonde un post du genre  
:smi ley: blablablablabla :smi ley:
avec un post
:code de smiley de plus de 4 caractères:
 
Merci


Message édité par RedShift le 12-02-2005 à 16:08:58

---------------
Ecosia, le moteur de recherche qui plante des arbres!
Reply

Marsh Posté le 08-02-2005 à 16:07:09   

Reply

Marsh Posté le 08-02-2005 à 16:10:06    

Citation :

les posts monosmilesques n'apportent généralement rien au débat

[:manu512]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 08-02-2005 à 16:16:27    

Reply

Marsh Posté le 08-02-2005 à 16:17:45    

[:chupachupz]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 08-02-2005 à 19:19:05    

Ca depends, si tu en as beacoup et qu'ils sont varies, alors les smilies peuvent etre pas mauvais ... Tu peux meme contruire des histoires avec ... :D
 
J'etais tombe une fois sur un site ou il fallait deviner des titres de films grace a des smilies (quizzzs me semble).

Reply

Marsh Posté le 08-02-2005 à 19:33:06    


tu fais une validation PHP et non JS [:spamafote]  
De toute façon, il faut toujours faire une vraie validation (en pas JS quoi) des forms, sinon t'es bon pour te vautrer [:spamafote]  
 
Sinon dans le cas précis, il suffit d'une regexp [:spamafote]  

^\s*:.+?:\s*$


Tu matches le message contre cette regexp, si le retour est positif (qu'il y a match) alors le post est monosmiley.
Sinon, il ne l'est pas.
 [:spamafote]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 08-02-2005 à 20:00:04    

Masklinn a écrit :

tu fais une validation PHP et non JS [:spamafote]  
 
Non, ça ne me plaît pas. Avec le JavaScript, les utilisateurs prendront de bonnes habitudes et puis comme ça, ça consomme rien côté serveur.    
 
De toute façon, il faut toujours faire une vraie validation (en pas JS quoi) des forms, sinon t'es bon pour te vautrer [:spamafote]  
 
Globalement, yen a déjà une de valable, le JS c'est en plus.
 
Sinon dans le cas précis, il suffit d'une regexp [:spamafote]  

^\s*:.+?:\s*$


 
Merci mais je suis vraiment nul en JS (j'avais prévenu  :lol: ) c'est quoi la ligne complète qu'il faut mettre (entre le if et l'accolade quoi) ?  
 
Tu matches le message contre cette regexp, si le retour est positif (qu'il y a match) alors le post est monosmiley.
Sinon, il ne l'est pas.
 [:spamafote]



---------------
Ecosia, le moteur de recherche qui plante des arbres!
Reply

Marsh Posté le 08-02-2005 à 20:04:48    

Citation :

Merci mais je suis vraiment nul en JS (j'avais prévenu  :lol: ) c'est quoi la ligne complète qu'il faut mettre (entre le if et l'accolade quoi) ?  


Aucune idée, je suis pas dans le JS, renseignes toi sur les regular expressions (expressions rationnelles en VF)


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 08-02-2005 à 20:12:56    

Ben c'est pour ça que je demande, je veux pas me taper toute la doc de JS rien que pour tester une regexp. Enfin, si faut le faire, je le ferai, mais si quelqu'un est fort en JS ici, ça doit pas lui poser de problème et ça m'aurait bien dépanné :D.


---------------
Ecosia, le moteur de recherche qui plante des arbres!
Reply

Marsh Posté le 08-02-2005 à 20:53:01    

Tiens va voir sur cette page (merci google :D)
Il y a meme un section ou tu peux tester ta regexp en "direct"
http://www.regular-expressions.info/javascript.html

Reply

Marsh Posté le 08-02-2005 à 20:53:01   

Reply

Marsh Posté le 08-02-2005 à 21:59:59    

Merci, je vais voir ça.


---------------
Ecosia, le moteur de recherche qui plante des arbres!
Reply

Marsh Posté le 09-02-2005 à 15:05:30    

Bon alors, j'ai trouvé la bonne expression régulière sans trop de problème (ça peut s'améliorer encore mais bon pour l'instant, ça me convient), mais au niveau du code ya un problème. Quand je rajoute le test, ça marche pas. Pire, le test de longueur ne marche même plus  [:joce]  
 
 

Code :
  1. var re = new RegExp(^:[a-zA-Z0-9]{3,9}:);
  2. if (document.post.message.value.length < 2 || document.post.message.value.match(re)) {
  3.  formErrors = "{L_EMPTY_MESSAGE}";
  4. }


 
Quelqu'un a une idée ?

Reply

Marsh Posté le 12-02-2005 à 16:08:28    

C'est bon, j'ai trouvé. Il suffisait de mettre la regexp entre guillemets dans la première ligne ou mieux :
 

Code :
  1. if (document.post.message.value.length < 5  || document.post.message.value.match("^( *:[a-zA-Z0-9]{3,9}: *)+$" )) {
  2.       formErrors = "{L_EMPTY_MESSAGE}";
  3.    }


 
Cela s'entend pour des noms de smileys ne comportant que des lettres ou des chiffres et pas d'espace. Après, pour améliorer la chose, il suffit d'améliorer la regexp.


Message édité par RedShift le 15-02-2005 à 17:06:39

---------------
Ecosia, le moteur de recherche qui plante des arbres!
Reply

Sujets relatifs:

Leave a Replay

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