我有以下表单代码,使用AngularUI允许输入日期(日期为必填项,应与美国日期格式匹配,例如:MM/DD/YY):
<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>
必填字段的验证正常,但日期格式验证未正确进行,始终显示“格式不正确...”消息。
我尝试了几种在其他地方有效的正则表达式,但它仍然无法正常工作。 我还尝试了AngularUI验证,但它也不起作用。提前致谢!
更新:
我发现验证与我使用的AngularUI日期选择器冲突,但是日期选择器会自动更正日期,因此如果不使用日期选择器,则只要正则表达式起作用,验证就可以正常工作;如果使用日期选择器,则没有太多需要进行其他验证。