Bonjour !

Je voudrais vérifier la syntaxe d’une date. Voici où j'en suis :
^(0[1-9]|[12][0-9]|3[01])\W(0[1-9]|1[012]|[a-z]{3,9})\W20\d\d$


Je voudrais que les intercalaires (\W) soient identiques. J'ai testé plusieurs syntaxes, en vain. Comment faire ?
Hello !

C’est difficile de vérifier une date avec une simple regex. Pourquoi ne pas utiliser un input de type date simplement ? Ou manipuler des objets Date (peu importe le langage) ?

Ça ne réponds pas à ta question mais ça te résous potentiellement ton problème Smiley smile
Modifié par Anymah (31 Jul 2022 - 14:28)
Bonsoir, et merci de ta réponse !

Mon choix est de procéder avec une regex.
Actuellement, c'est :
"date" => "^(0?[1-9]|1[0-9]|3[01])\W(0[1-9]|1[012]|[a-z]{3,9})\W20\d\d$",

Je vaudrais que les deux intercalaires (\W) soient identiques; comment faire ?
As-tu un nombre d'intercalaire réduits ? (genre un ou deux)

parce que dans ce cas-là, le plus simple, ça va être un truc genre
^((blabla)-(blabla)-)|((blabla)=(blabla)=)$


si tu en as plus que 3 ou 4, ça va compliquer. J'ai pas dans le souvenir qu'on puisse faire une référence à un autre élément dans les regex.

tu vas donc devoir faire ça en 2 étapes, certainement.

La première pour chercker ta regex, la seconde en capturant tes \W et en vérifiant s'ils sont identiques.
Modifié par Lothindil (06 Oct 2022 - 16:10)