AngularJS: Comment valider la date au format US?
J'ai le formulaire suivant, un code qui permet l'entrée d'une date à l'aide AngularUI (la date est obligatoire et doit correspondre à NOUS de format de date par exemple: JJ/MM/AA):
<form name="form" ng-submit="createShipment()">
<!-- Shipment Date must be in MM/DD/YY format: -->
<input name="shipmentDate"
ng-pattern='/^[0,1]?\d{1}\/(([0-2]?\d{1})|([3][0,1]{1}))\/(([1]{1}[9]{1}[9]{1}\d{1})|([2-9]{1}\d{3}))$/'
ui-date="{ dateFormat: 'mm/dd/y' }" required ng-model="shipment.ShipmentDate" type="text">
<span ng-show="form.shipmentDate.$error.required">Date Required!</span>
<span ng-show="form.shipmentDate.$error.pattern">Incorrect Format, should be MM/DD/YY!</span>
<input class="btn-primary" ng-hide="!form.$valid" type="submit" value="Create">
</form>
De Validation pour nécessaire champ fonctionne très bien, mais de format de date n'est pas validé correctement et affiche toujours 'Format Incorrect...' message.
J'ai essayé plusieurs différentes Expressions Régulières qui a bien fonctionné ailleurs, mais ça ne fonctionne toujours pas. Aussi j'ai essayé AngularUI validation et ça ne fonctionne pas non plus. Merci à l'avance!
Mise à JOUR:
J'ai pensé que la validation a été en conflit avec AngularUI datepicker j'ai utilisé, mais datepicker autocorrects date de toute façon, donc si datepicker n'est pas utilisé, que la validation fonctionne tant que l'expression régulière d'œuvres, et si datepicker est utilisé, il n'est pas besoin de beaucoup pour les autres de validation.
source d'informationauteur mik-t
Vous devez vous connecter pour publier un commentaire.
La accepté de répondre ne fonctionne pas pour moi. J'ai changé pour:
Sinon, seules les personnes nées après 1990 besoin de faire une demande!
Votre ng-modèle travaillé dans un violon j'ai créé, mais il permet à des dates incorrectes, comme 0/9/1993 et 19/2/1993.
Voici un meilleur modèle: (à noter, il a été mis à jour pour correspondre @WillSadler réponse)
Violon.
Vérifier auprès de l'année bissextile valider: format de la Date:
dd-mm-yyyy
Regex modèle:
^(0?[1-9]|1\d|2[0-8]|29(?=[-]\d?\d[-](?!1[01345789]00|2[1235679]00)\d\d(?:[02468][048]|[13579][26]))|30(?![-]0?2)|31(?=[-]0?[13578]|[-]1[02]))[-](0?[1-9]|1[0-2])[-]([12]\d{3})$
Démo
une autre démo