Bonjour
j'ai testé ta regex, je ne pense pas que la question que tu poses soit le premier problème à gérer, voir ce lien
https://regex101.com/r/EuK3Be/1
Quand j'étais petit, la mer Morte n'était que malade.
George Burns
Bonsoir,
l'objet n'est pas, actuellement, d'écrire une regex qui vérifie, parfaitement, la syntaxe d'une date, mais de vérifier que les deux intercalaires sont bien identiques.
OK, dans ce cas, tu mets le premier intercalaire entre parenthèses, pour former un groupe, et le second, tu appelles le résultat de la capture du groupe avec \ et le numéro du groupe (2 en l'occurrence) mais le hic est qu'après, il y a 20, donc ça fait \220 et là ça veut chercher un unicode, donc il faut mettre \2 entre parenthèses aussi.
^(0?[1-9]|1[0-9]|3[01])(\W)(0[1-9]|1[012]|[a-z]{3,9})(\2)20\d\d$
https://regex101.com/r/EuK3Be/2
Quand j'étais petit, la mer Morte n'était que malade.
George Burns
Pour voir ce que ça donne, et à l'avenir tester tes regex par toi-même facilement, il suffit de cliquer sur le lien que je t'ai is au-dessus....
Bonjour, Whismeril, et merci d'aider !!!
Cela a l'air de fonctionner.
<?php
$nomspatt = "^[A-ZÀ-Ö][A-ZÀ-Ö' $minuscules-]*$" ;
$prixpatt = "^\d*\.?\d*$" ;
$patterns = array(
"nom" => $nomspatt,
"prénom" => $nomspatt,
"mail" => "^[_a-zA-Z0-9-]+(\\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\\.[a-zA-Z0-9-]+)+$",
"téléphone" => "^\+\d{10,12}$",
"bacano" => "^\d{16}$",
"cryptogramme" => "^\d{3}$",
"prix" => $prixpatt,
"budget" => $prixpatt,
"expidate" => "^\d{2}/\d{2}$",
"date" => "^(0?[1-9]|[12][0-9]|3[01])(\W)(0[1-9]|1[012]|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)(\\2)20\d\d$",
) ;
?>
Bonne journée !