你能帮我为以下格式的日期创建一个正则表达式验证器吗:MMM d, y HH:mm
示例:2015 年 8 月 7 日 00:00
我从这里开始:^Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec
但不知道如何继续(正则表达式对我来说是新的)
最佳答案
您可以使用方括号来表示两个字符之间的范围。
要获取 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", ""]
在字符串中获得日期段后,根据您可能拥有的规则验证每个日期段。
关于javascript - 以下格式的日期正则表达式验证器 "MMM d, y HH:mm",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30635460/