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

标签 javascript regex

你能帮我为以下格式的日期创建一个正则表达式验证器吗: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/

相关文章:

javascript - 重新排序关联模型 laravel

javascript - 尽管导出,Angular 仍无法识别导入模块中的组件

python - 剥离 xpath 中的附加项

python - [Python] : Python re. 长字符串行的搜索速度优化

javascript - onLine API 无法在任何浏览器中运行

javascript - 使用 jest 模拟其他模块中的函数依赖关系

regex - 在多行数据中提取 Notepad++ 中2个特定单词之间的字符串/数据

javascript - 邮政编码的复杂正则表达式模式

python - 为什么使用正确的协议(protocol)捕获 URL 会失败?

javascript - Netbeans javascript 项目未重新编译