你能帮助我以下列格式为日期创建一个正则表达式验证器:MMM d, y HH:mm
示例:Aug 7, 2015 00:00
我从这开始:^Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec
但不知道如何继续(正则表达式对我而言是新的)
答案 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", ""]
在字符串中包含日期段后,根据您可能拥有的规则验证每个段。