日期正则表达式验证器,格式如下" MMM d,y HH:mm"

时间:2015-06-04 05:18:27

标签: javascript regex

你能帮助我以下列格式为日期创建一个正则表达式验证器:MMM d, y HH:mm

示例:Aug 7, 2015 00:00
我从这开始:^Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec
但不知道如何继续(正则表达式对我而言是新的)

1 个答案:

答案 0 :(得分:1)

您可以使用方括号表示两个字符之间的范围。

要获得1到9之间的日期,请使用[1-9]。

要获得10到29之间的日期,请使用[1-2] [0-9]。

要获得30到31之间的日期,请使用3 [0-1]。

组合得到[1-9] | [1-2] [0-9] | 3 [0-1]。 哪个可以减少到[1-2]?[0-9] | 3 [0-1]。 [0-9]与\ d相同,表示任何数字。所以它可以进一步减少到[1-2]?\ d | 3 [0-1]。

1900年以上你可以使用19 \ d \ d和2000到2199之间使用2 [0-1] \ d \ d。

你明白了。最后你应该得到类似的东西:

var r = /^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+([1-2]?\d|3[01]),\s+(19\d\d|2[0-1]\d\d)\s+([0-1]?\d|2[0-4]):([0-5]?\d|60)$/

r.test('Aug 7, 2015 00:00'); // true
'Aug 7, 2015 00:00'.split(r); // ["", "Aug", "7", "2015", "00", "00", ""]

在字符串中包含日期段后,根据您可能拥有的规则验证每个段。