多种格式的日期的ng-pattern

时间:2016-08-10 21:04:35

标签: angularjs regex date format

我正在尝试将输入字段匹配为MM / dd / yyyy,MM-dd-yyyy或MMddyyyy。

我是正则表达式的初学者,但我写了以下内容:

/^[0-9][0-9][\-\/0-9][0-9][0-9][\-\/0-9][0-9][0-9]([0-9][0-9])/

这匹配MM / dd / yyyy和MM-dd-yyyy但不匹配MMddyyyy。它也会连续匹配我不想要的10个数字。非常感谢帮助。

4 个答案:

答案 0 :(得分:1)

所以这段代码可以满足我的需要,但不会检查它是否是实际日期。例如,2月31日将被接受。

/^([0-9]{2}[-/][0-9]{2}[-/][0-9]{4})|([0-9]{8})/

答案 1 :(得分:1)

使用以下ng-pattern匹配MM / DD / YYYY.Which还将验证闰年.... ng-pattern='/^((0[13578]|1[02])[\/.]31[\/.](18|19|20)[0-9]{2})|((01|0[3-9]|1[1-2])[\/.](29|30)[\/.](18|19|20)[0-9]{2})|((0[1-9]|1[0-2])[\/.](0[1-9]|1[0-9]|2[0-8])[\/.](18|19|20)[0-9]{2})|((02)[\/.]29[\/.](((18|19|20)(04|08|[2468][048]|[13579][26]))|2000))$/

Codepen

答案 2 :(得分:0)

使用以下ng-pattern匹配MM/DD/YYYY

<md-datepicker flex
    id="start"
    label="start"
    name="start"
    ng-model="vm.start"
    md-placeholder="Start Date"
    ng-pattern="^(0[1-9]|1[0-2])\/(0[1-9]|1\d|2\d|3[01])\/(19|20)\d{2}$"
    required>
</md-datepicker>

答案 3 :(得分:0)

在我的项目中使用这个正则表达式,我发现了一个日期为10/29 / YYYY和10/30 / YYYY的小错误。现在纠正它对我来说非常合适。正确的表达方式是:

ng-pattern='/^((0[13578]|1[02])[\/.](29|30|31)[\/.](18|19|20)[0-9]{2})|((01|0[3-9]|1[1-2])[\/.](29|30)[\/.](18|19|20)[0-9]{2})|((0[1-9]|1[0-2])[\/.](0[1-9]|1[0-9]|2[0-8])[\/.](18|19|20)[0-9]{2})|((02)[\/.]29[\/.](((18|19|20)(04|08|[2468][048]|[13579][26]))|2000))$/'>