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 -
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:
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 :)
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 :)
A voir également:
- Textarea regex
- Regex ne commence pas par ✓ - Forum PHP
- Regex negation chaine caractère - Forum Programmation
- Expressions régulières "ne contient pas ..." ✓ - Forum Programmation
- Regex buddy - Télécharger - Édition & Programmation
- Regex tabulation ✓ - Forum Programmation
6 réponses
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 "_")
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 "_")