Vous êtes dans la categorie Expression régulière

Expression régulière pour vérifier si une valeur est une couleur hexadécimale

Rédigé par fab1 aucun commentaire

Il peut parfois être utile de vérifier via une expression régulière (ou rationnelle selon les gouts) si une valeur rentrée par un utilisateur est bien hexadécimale. Cela peut être utile lorsque l'on décide de créer des images pour nos utilisateurs, modifier une couleur d'un élément via une interface maison que l'on a réaliser pour éviter les erreurs de saisies, etc ... Les raisons pour vérifier si une valeur est bien hexadécimale sont nombreuses et ceux qui arrivent ici en on une. Je vous propose donc une petite expression régulière qui répond à ce besoin simple avec un petit exemple pour tester si une valeur est bien hexadécimale :

<?php

function valeurHexadecimal($hexa){
    $retour = false;
    $motif ='/^#?([a-f0-9]{6}|[a-f0-9]{3})$/';
    if(preg_match($motif,$hexa))
    {
        $retour =true;
    }
    return $retour;  
}

// exemple 

if(valeurHexadecimal('blabla')){
    echo 'ok';
} else {
    echo 'pas ok';
}

if(valeurHexadecimal('#00abc')){
    echo 'ok';
} else {
    echo 'pas ok';
}

if(valeurHexadecimal('#00ff00')){
    echo 'ok';
} else {
    echo 'pas ok';
}


?>

Ainsi avec le code source PHP précédent, seul le dernier exemple vous renverra un résultat "vrai" et donc valide. Vous pouvez maintenant contrôler si une valeur hexadécimale est bonne ou pas.

Classé dans : Expression régulière

Expression régulière : valider un pseudo lors de l'inscription d'un membre

Rédigé par fab1 aucun commentaire

On continue avec nos expressions régulières et après la validation du numéro de téléphone, on passe donc au pseudo, ce qui sera très utile si vous avez un espace membre sur votre site. En effet, il est absolument indispensable de contrôler les données soumises par les internautes pour éviter toute attaque de type injection SQL ou cross-site scripting (aussi appelé XSS). Pour valider notre pseudo, on ne va pas se compliquer la tête en tentant de bloquer tout ce qui semble dangereux en faisant par exemple une liste dans un tableau qui empêcherait l'internaute de soumettre ses données sur votre site web. On va plutôt se concentrer sur ce qui est valide et si cela ne correspond pas au motif de notre expression régulière, on refuse la soumission du pseudo avec un petit message d'erreur pour les plus appliqués.

On se lance enfin avec notre petite expression régulière qui est intégrée dans une fonction pseudoValide($login), voici le code source de cette fonction :

<?php

function pseudoValide($login){   

    $retour = false;
    $motif ='/^[a-z0-9_-]{3,16}$/';
    // la fonction supprime les majs
    $login = strtolower($login);
    if (preg_match($motif,$login))
    {
        $retour = true;
    } 
    return $retour;  

}

// exemple utilisation
if(pseudoValide('fabien')){
    echo 'ok';
} else {
    echo 'pas ok';
}

if(pseudoValide('<script>alert("Je tente de faire des bétises")</script>')){
    echo 'ok';
} else {
    echo 'pas ok';
}

?>

Le premier résultat de pseudoValide va alors renvoyer "ok" alors que la seconde tentative du petit malin recevra un "pas ok" et se verra donc refusé. Au passage, la fonction supprime l'ensemble des caractères accentués pour la vérification du pseudo entré par l'internaute, c'est un choix pour avoir des pseudo relativement lisibles. N'hésitez pas à laisser un commentaire pour une éventuelle évolution du motif de l'expression régulière.

Classé dans : Expression régulière

Expression régulière : tester la validité d'un numéro de téléphone francais

Rédigé par fab1 aucun commentaire

Vous le savez surement si vous êtes arrivés ici, les expressions régulières sont vraiment très utiles car elles sont très puissantes pour ce qui est le contrôle des chaines de caractère. Dans cet article, nous allons voir une expression régulière qui permet de détecter si un numéro de téléphone français est valide ou pas. On utilisera une petite fonction en PHP pour vérifier que le motif de notre expression régulière fonctionne bien. On passe maintenant au petit code source pour illustrer notre expression régulière :

<?php

// vérifier numero
function numeroValide($numero){
    $retour = false;
    $motif ='#^0[1-68][0-9]{8}$#';
    if(preg_match($motif,$numero))
    {
        $retour =true;
    }
    return $retour;  
}

// exemple 

if(numeroValide('0123458910')){

    echo 'ok';
} else {

    echo 'pas ok';

}

if(numeroValide('0123')){

    echo 'ok';
} else {

    echo 'pas ok';

}

if(numeroValide('012345891011')){

    echo 'ok';
} else {

    echo 'pas ok';

}

?>

Le premier résultat affichera "ok", et le deuxième et le troisième résultat affichera "pas ok". Pratique non ?

Classé dans : Expression régulière