Accueil > > > TESTEUR DE REGEX
TESTEUR DE REGEX
Information sur la source
Description
Dans le cadre des champs de formulaire, on contrôle la validité de l'entrée par une regex. Sauf que pour un champ donné, disons l'adresse email par exemple, on trouve 3 milliards de regex sur le net, et bien sûr, pas deux identiques. Sans compter que ce sont souvent les débutants qui postent leur belle regex toute fraiche sortie de leur petits doigts fébriles tapotant sur son nouveau clavier bluetooth. (moi aussi j'ai des petits doigts fébriles -:) Résultat: peu de regex trouvées sur le net fonctionnent vraiment ou correspondent exactement à votre besoin propre. D'où ce tout petit script utilitaire uniquement pour vérifier les regex sur votre système ou pour vous aider à comprendre les regex et autres pcre/posix. Soit on tape la regex à tester dans le champ prévu à cet effet, soit on laisse le champ vide, et le test sera effectué sur le tableau de regex inclus dans le script. Bien sûr, il suffit d'en ajouter d'autres en fonction de ce que vous voulez tester. Nota: - A n'utiliser qu'en admin évidemment. - C'est aussi largement améliorable en ajouter des preg_match_all, en vérifiant les retour etc.. PS: il y a quand même un site plutôt pas mal pour les regex, mais c'est surtout US donc pour les adresses, pas très utile... http://regexlib.com/Default.aspx
Source
- <?php
-
- session_start();
- error_reporting(E_ALL);
-
- // QQ REGEX
- $_SESSION['regex'] = array(
- 'nom' => "#[a-zéèàêâùïüëA-Z][^0-9]#",
- 'prenom' => "#[a-zéèàêâùïüëA-Z][^0-9]#",
- 'raison_sociale'=> "#[a-zéèàêâùïüëA-Z][^0-9]#",
- 'telephone' => "#^0[1-689]([-. ]?[0-9]{2}){4}$#",
- 'email' => "#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-z]{2,4}$#",
- 'siret' => "#[0-9]{14}#",
- 'ape_naf' => "#[0-9]{5}#",
- 'rue' => "#^[a-zA-Z0-9 ,-/éèàêâùïüë]{0,50}$#",
- 'ville' => "#^[a-zA-Z1-9-/ éèàêâùïüë]{1,50}$#",
- 'code_postal' => "#^[0-9]{2} ?[0-9]{3}$#",
- 'date_naissance'=> "#^[0-3]?[0-9][/\- ][01][0-9][/\- ][0-9]{4}$#",
- 'login' => "#^[a-zA-Z0-9_@]{4,20}$#",
- 'pwd' => "#^[a-zA-Z0-9_@]{8,20}$#",
- 'phrase_cle' => "#[a-zéèàêâùïüëA-Z]#",
- 'ip' => '#^(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}$#',
- 'test_ip1' => '#^(168|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}$#'
-
- );
-
- // Testeur de regex
-
- if (isset($_POST['reg']) && isset($_POST['val']) ) {
- $value = htmlspecialchars($_POST['val']);
-
- // teste d'une seule regex
- if (!empty($_POST['reg'])) {
- $regex = htmlspecialchars($_POST['reg']) ;
- if ( preg_match( $regex, $value, $matches ) ) {
- echo '<br/><b>Ok</b>: <u>'. $value . '</u> matche avec <u>' . $regex . '</u><br/>' ;
- }
- else{
- echo '<br/><b>NOk : <u>'. $value . '</u> ne </b> matche <b>pas</b> avec <u>' . $regex . '</u><br/>' ;
- }
- }
- // teste le tableau des regex
- else {
- $regex = $_SESSION['regex'];
- foreach($regex as $reg_name => $reg) {
- if ( preg_match( $reg, $value) ) {
- echo '<br/>Match: La regex <b>' . $reg_name . '</b>(<u>'. $reg . '</u>) matche avec la valeur <u>' . $value .'</u>';
- }
- }
- }
- }
-
-
- echo '<form method="post" action="/admin/test_regex.php">';
- echo '<p>';
- echo '<label for="reg">La regex </label><br/>';
- if (is_array($regex)) {$aff='';} else { $aff=$regex;}
- echo '<input type="text" id="reg" name="reg" size="100" value="'. $aff . '"/><br/>';
- echo '<label for="ma_valeur">La valeur à tester </label><br/>';
- echo '<input type="text" id="ma_valeur" name="val" size="100" value="'. $value. '"/>';
- echo '</p>';
- echo '<p>';
- echo '<input type="submit" /> <input type="reset" />';
- echo '</p>';
-
- echo '</form>';
-
- ?>
<?php
session_start();
error_reporting(E_ALL);
// QQ REGEX
$_SESSION['regex'] = array(
'nom' => "#[a-zéèàêâùïüëA-Z][^0-9]#",
'prenom' => "#[a-zéèàêâùïüëA-Z][^0-9]#",
'raison_sociale'=> "#[a-zéèàêâùïüëA-Z][^0-9]#",
'telephone' => "#^0[1-689]([-. ]?[0-9]{2}){4}$#",
'email' => "#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-z]{2,4}$#",
'siret' => "#[0-9]{14}#",
'ape_naf' => "#[0-9]{5}#",
'rue' => "#^[a-zA-Z0-9 ,-/éèàêâùïüë]{0,50}$#",
'ville' => "#^[a-zA-Z1-9-/ éèàêâùïüë]{1,50}$#",
'code_postal' => "#^[0-9]{2} ?[0-9]{3}$#",
'date_naissance'=> "#^[0-3]?[0-9][/\- ][01][0-9][/\- ][0-9]{4}$#",
'login' => "#^[a-zA-Z0-9_@]{4,20}$#",
'pwd' => "#^[a-zA-Z0-9_@]{8,20}$#",
'phrase_cle' => "#[a-zéèàêâùïüëA-Z]#",
'ip' => '#^(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}$#',
'test_ip1' => '#^(168|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}$#'
);
// Testeur de regex
if (isset($_POST['reg']) && isset($_POST['val']) ) {
$value = htmlspecialchars($_POST['val']);
// teste d'une seule regex
if (!empty($_POST['reg'])) {
$regex = htmlspecialchars($_POST['reg']) ;
if ( preg_match( $regex, $value, $matches ) ) {
echo '<br/><b>Ok</b>: <u>'. $value . '</u> matche avec <u>' . $regex . '</u><br/>' ;
}
else{
echo '<br/><b>NOk : <u>'. $value . '</u> ne </b> matche <b>pas</b> avec <u>' . $regex . '</u><br/>' ;
}
}
// teste le tableau des regex
else {
$regex = $_SESSION['regex'];
foreach($regex as $reg_name => $reg) {
if ( preg_match( $reg, $value) ) {
echo '<br/>Match: La regex <b>' . $reg_name . '</b>(<u>'. $reg . '</u>) matche avec la valeur <u>' . $value .'</u>';
}
}
}
}
echo '<form method="post" action="/admin/test_regex.php">';
echo '<p>';
echo '<label for="reg">La regex </label><br/>';
if (is_array($regex)) {$aff='';} else { $aff=$regex;}
echo '<input type="text" id="reg" name="reg" size="100" value="'. $aff . '"/><br/>';
echo '<label for="ma_valeur">La valeur à tester </label><br/>';
echo '<input type="text" id="ma_valeur" name="val" size="100" value="'. $value. '"/>';
echo '</p>';
echo '<p>';
echo '<input type="submit" /> <input type="reset" />';
echo '</p>';
echo '</form>';
?>
Conclusion
void
Sources du même auteur
Sources de la même categorie
VALIDATEUR DE FORMULAIREVALIDATEUR DE FORMULAIREJ'ai codé cet ensemble de classes pour accélérer la création de formulaire sans l'alourdir avec une classe la plus simple possible d'utilisation.
J'a...
par Reldan
SUIVI SERVICE CLIENT PHPSUIVI SERVICE CLIENT PHP Bonjour. Voici mon premier dev en PHP.
Il reste encore beaucoup de travail a faire, afin de le finir, en y incluant par exemple tout e la partie bas...
par hige52
POO - FORMULAIRE NEWSLETTER PHP - PROFESSEUR-PHP.COMPOO - FORMULAIRE NEWSLETTER PHP - PROFESSEUR-PHP.COM Il y a de nombreuses sources sur les formulaire de newsetter, je propose en plus la vidéo pour l'explication de la source, merci.
Voici le tutorial...
par mtrix000
SELECTEUR DE NOTESELECTEUR DE NOTEUne classe Php et le plugin jQuery correspondant pour un sélecteur de note simplissime d'utilisation.
Rien de bien novateur mais je n'ai pas trouvé d...
par Reldan
ESPACE MEMBRE , AVEC CASE OPTIONNEL , SANS MYSQLESPACE MEMBRE , AVEC CASE OPTIONNEL , SANS MYSQLvoici un espace membre qu'on peut qualifier de très simple, il n'utilise pas de bdd, ni mysql il est plus fait pour de petits sites, il n'y a rien d'a...
par sartoz
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Récupération de champ dans un formulaire [ par alainG ]
J'ai créé un formulaire pour ajouter un enregistrement dans une table.<html><head><meta http-equiv="Content-Type" content="text/html";
Champ de formulaire [ par luckys ]
Bj à tous,J'ai créer un script dans lequel sont compris a la fois le formulaire et la récuperation des données pour les inclure dans une base.Je voudr
formulaire + champ de type "File" [ par ironnyc ]
Salut a tous!!j ai un petit prob avec mon formulaire pour faire un upload.Dans mon ficher "Formulaire.htm"j utilise un champ de type "File" (avec encr
PHP: récupérer le champ d'un formulaire sans Bouton! [ par brahma ]
hello ,avec php: comment puis je récupérer la valeur d'un champ d'un formulaire, lorsque l'utilisateur me donne la main en passant par un lien hyperte
Modification de champ via un formulaire [ par Lephoenix75 ]
Voial j'aimerai que lorsque je sélectionne un pseudo dans mon menu déroulant qu'il charge toute les infos concernant le pseudo (ou id) exemple => p
Souci sur un champ texte. [ par Jouban ]
Bonjour à tous !J?ai besoin de vos lumières pour m?éclairer sur un souci technique.Cela concerne des formulaires. J?ai un premier formulaire avec un c
champ d'un formulaire suivant une selection radio [ par LiGrAnD ]
Bonjour,je dois faire un formulaire recueillant des informations sur des personnes, mais les champs du formulaire doivent etre different celon la cate
Affichage bulle d'erreur sur un champ de formulaire [ par ranouf ]
Bonsoir tous,Pour s'inscrire dans le site que je crée il peut arriver que l'utilisateur face des erreurs.J'arrive a tous récupéré mais ce que je voudr
pb avec un champ de type file [ par ouiskie ]
Salut,j'ai un formulaire, et dedans il y a un chmap de type file, pour aller chercher l'adresse d'une image. Je v chercher l'adresse avec le bouton pa
vérification de champ d'un formulaire [ par cobrachris ]
j'ai lu plusieur post mais j'ai pas vraiment trouver.Voila je vous explique rapidement.J'aimerais créer unformulaire pour enregistrer des lieux e
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|