J'en suis à :
^(0?[1-9]|1[0-9]|3[01])\W(0[1-9]|1[012]|[a-z]{3,9})\W20\d\d$
Je voudrais que les intercalaires (\W) soient semblables. Comment faire ?

1 réponse


Hello,

Je ne sais pas avec quel langage / techno tu code mais il n'y a pas déjà quelque chose qui peut vérifier le format ? Car la avec ta regex, je peux mettre 31/02/2099 (d'ailleurs on peut pas dépasser 2100 ? :D )

Exemple en PHP :

<?php

$dateString = '32/13/147';
$date = DateTime::createFromFormat('d/m/Y', $dateString);
var_dump(DateTime::getLastErrors());

/*
array(4) {
  ["warning_count"]=>
  int(1)
  ["warnings"]=>
  array(1) {
    [9]=>
    string(27) "The parsed date was invalid"
  }
  ["error_count"]=>
  int(0)
  ["errors"]=>
  array(0) {
  }
}
 */