Page 1 sur 1

Expression Regulière

Posté : 14 août 2007, 06:54
par meepmeep
Bonjour, je souhaite controler que le code à 6 caractères rentré par un utilisateur est bien :
SOIT VIDE
SOIT UN CODE HEXA POUR UNE COULEUR HTML

Exemple :
Soit : (vide par exemple)
Soit : FAFA06 (pour couleur #FAFA06 par exemple)

([A-F0-9]{6}) > Ceci me donne bien un code couleur
Comment rajouter la fait qu'on autorise les chaines vides ?

Merci pour votre aide.

Posté : 14 août 2007, 09:03
par titerm
bah c'est tout bête, tu ajoutes une alternative vide.

Code : Tout sélectionner

([A-F0-9]{6}|^$)

Posté : 14 août 2007, 09:48
par Hubert Roksor
Je crois que tu voulais dire

Code : Tout sélectionner

^([A-F0-9]{6}|)$
Sinon ça accepterait n'importe quel texte comprenant un code hexa.

Posté : 14 août 2007, 09:54
par Genova
Ou alors plus simplement faire le controle en PHP :

Code : Tout sélectionner

if (empty($var) || preg_match('/^[a-f0-9]{6}$/i', $var))

Posté : 14 août 2007, 10:08
par Hubert Roksor
Mmh, empty() renverra true si on entre "0", mais on pourrait utiliser
if ($var === '' || preg_match('/^[a-f0-9]{6}$/Di', $var))

Parfait

Posté : 14 août 2007, 17:05
par meepmeep
Je crois que tu voulais dire

Code : Tout sélectionner

^([A-F0-9]{6}|)$
Sinon ça accepterait n'importe quel texte comprenant un code hexa.
C'est exactement ce qu'il me fallait ;)