Regex: au moins deux caractères dans un "textarea"

Résolu
chantaussel Messages postés 137 Date d'inscription   Statut Membre Dernière intervention   -  
chantaussel Messages postés 137 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un petit problème de regex.
Dans un formulaire contenant un champ TEXTAREA, je souhaite vérifier avant envoi que l'utilisateur a bien écrit au moins deux caractères, sans compter les appuis sur la touche "entrée".
C'est bien il me semble le sens du point dans les regex?

Voilà ma regex:
$message = strip_tags($_POST['message']);
if (preg_match("#.{2,}#", $message))

Et j'ai testé plusieurs cas de figure:
- si je tape une seule lettre --> pas d'envoi
- si j'en tape deux --> envoi
- si je tape plusieurs fois sur entrée (sans rien écrire) --> pas d'envoi

Jusque là tout est normal, mais:
- si je tape une lettre + au moins une fois sur entrée --> envoi

Je ne comprends pas ce qui cloche... Ce n'est pas capital, mais je trouve ça bizarre.

Merci d'avance de votre aide :)



6 réponses

armasousou Messages postés 1268 Date d'inscription   Statut Membre Dernière intervention   83
 
La classe . représente n'importe quelle caracteres, j'imagine qu'une chaine de caracteres remplis d'espaces uniquement est considéré comme vide par preg match (probablement un trim d'entré), mais avec une lettre avant, ils sont compté ^^

Utilise la classe "\w" (qui correspond à [A-Za-z0-9_] et les caractéres accentués) plutot que "." ou [:alnum:] (pareil que \w sans le "_")
1