// This is valid, both opening ( and closing )
var_dump(preg_match('~Valid(Regular)Expression~', '') === false);
// This is invalid, no opening ( for the closing )
var_dump(preg_match('~InvalidRegular)Expression~', '') === false);
Comme l'utilisateur pozs a dit, aussi envisager de mettre @
devant preg_match() ( @preg_match()
) dans un environnement de test pour éviter les avertissements ou les avis.
Pour valider une RegExp, il suffit de l'exécuter contre null
(il n'est pas nécessaire de connaître à l'avance les données contre lesquelles vous voulez tester) . S'il renvoie un faux explicite ( === false
), il est cassé. Sinon, il est valide bien qu'il ne doive pas nécessairement correspondre à quoi que ce soit.
Il n'est donc pas nécessaire d'écrire votre propre validateur RegExp. C'est une perte de temps...
7 votes
Voulez-vous dire quelque chose comme : stackoverflow.com/questions/172303/ ?
0 votes
Si cela ne doit pas être en code, vous pouvez aller sur regexr.com, et coller votre regex, et taper le texte contre lequel vous le faites correspondre.
0 votes
Pourquoi ne voulez-vous pas vérifier preg_match() contre false ?
1 votes
On dirait que je suis arrivé en retard à la fête
0 votes
Certaines réponses ne prennent pas en compte le fait que PEUT-ÊTRE le regex à valider provient de l'entrée d'un utilisateur administrateur d'une application... PEUT-ÊTRE que l'application a une table "contact_types" avec un champ "regex"...