2017-09-18 2 views
0
function isMMDD(value) { 
    var re = /^([0]?[1-9]|1[0-2])\/([0-2]?[0-9]|3[0-1])$/; 
    if (re.test(value)) { 
     return true; 
    } 
    else 
     return false; 
} 

je voudrais avoir trop 30/2 comme non valide.Validation MM/DD. Il n'a pas YYYY aussi devrait 30/02 que je valide suis pas trop

+1

double possible de [Expression régulière en fonction des dates valides] (https://stackoverflow.com/questions/51224/regular-expression-to-match- dates de validité) – Rodrirokr

+0

Voir [this] (https://stackoverflow.com/a/8768241/5894241) réponse en particulier. Il gère la partie sur la validation des dates telles que 02/30. – Nisarg

Répondre

0

Grâce à here

Si vous validez dans un script l'entrée d'une date de l'utilisateur, il est probablement plus facile à faire certains contrôles en dehors de la regex. Pour par exemple, en excluant le 29 février lorsque l'année n'est pas une année bissextile est beaucoup plus facile à faire dans un langage de script. Il est beaucoup plus facile de vérifier si par an est divisible par 4 (et non divisible par 100, sauf si divisible par 400) en utilisant l'arithmétique simple que d'utiliser des expressions régulières.

Dans votre cas, il s'applique la même chose, aussi c'est une question très posée.

here, here et aussi (mais pas exactement) here

+0

Salut @Rodrirokr merci beaucoup pour votre explication. Je ne suis pas très doué pour appliquer ce que vous avez dit plus haut. Pourriez-vous le rendre plus clair et me montrer le code? Merci d'avance! –