如何在 JavaScript 中使用格式“MMM DD, YYYY h:mm:ss A”验证日期
How to validate date with format “MMM DD, YYYY h:mm:ss A” in JavaScript?
我想使用 MMM DD, YYYY h:mm:ss A 格式验证输入上的日期格式。 我在下面尝试过,但没有工作:
var r = /^(((0[13578]|1[02])['/'.-](0[1-9]|[12]'d|3[01])['/'.-]((19|[2-9]'d)'d{2})'s(0[0-9]|1[0-2]):(0[0-9]|[1-59]'d):(0[0-9]|[1-59]'d)'s(AM|am|PM|pm))|((0[13456789]|1[012])['/'.-](0[1-9]|[12]'d|30)['/'.-]((19|[2-9]'d)'d{2})'s(0[0-9]|1[0-2]):(0[0-9]|[1-59]'d):(0[0-9]|[1-59]'d)'s(AM|am|PM|pm))|((02)['/'.-](0[1-9]|1'd|2[0-8])['/'.-]((19|[2-9]'d)'d{2})'s(0[0-9]|1[0-2]):(0[0-9]|[1-59]'d):(0[0-9]|[1-59]'d)'s(AM|am|PM|pm))|((02)['/'.-](29)['/'.-]((1[6-9]|[2-9]'d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))'s(0[0-9]|1[0-2]):(0[0-9]|[1-59]'d):(0[0-9]|[1-59]'d)'s(AM|am|PM|pm)))$/g;
r.test("Dec 08, 2015 3:11:00 AM");
我不太擅长正则表达式,任何帮助将不胜感激!!
谢谢!
正则表达式在处理日期方面不是很好。例如,它不适合区分 30 天或 31 天的月份。您的尝试进一步证明了它是多么不合理,您创建了一个不可读、不可维护的表达式,并且几乎不可能测试或修复。
相反,请使用专用的日期/时间组件(如果符合您的要求,则可以存在,也可以自己开发一个)。
相关文章:
- 如何在JavaScript中以天、dd/mm/yyyy格式显示昨天的日期
- 表分类器addParser用于类似“;aa,dd.mm.yyyy”;
- 将dd-mm-yyyy-hr:min:sec转换为unixtime
- 使用英国日期标准dd/mm/yyyy计算两个日期之间的差异
- 使用dd/mm/yyyy格式计算两个日期之间的差异-dons't account for years
- 将长日期转换为英国短日期格式 dd/mm/yyyy
- 使用 javascript 将日期和时间字符串转换为 dd/mm/yyyy
- Javascript Date Validation ( DD/MM/YYYY) & Age Checking
- 如何使用掩码编辑扩展器用日期格式 MM/yyyy 屏蔽文本框
- 使用 javascript 将日期从 dd/mm/yyyy 转换为 yyyy/mm/dd
- Javascript:如何将epoch转换为dd-mm-yyyy
- 在 JavaScript 中将日期从 dd/mm/yyyy 转换为 yyyy-mm-dd
- jQuery:以 dd-mm-yyyy 格式添加 4 周至今
- Angular-UI 日期选择器不允许在输入字段中输入格式 dd.MM.yyyy
- 如何在角度 js 中将日期格式化为 DD/MM/YYYY
- 如何在加载 dd/mm/yyyy 时在文本框中显示 __/__/____ 并将 __/__/____ 替换为日期
- 将格式为 dd-MMM-YYYY 的日期转换为日期或 JS 格式的 dd/mm/yyyy 格式
- 如何使用 JavaScript 或 jQuery 解析“dd/mm/yyyy”或“dd-mm-y”或“dd-mmm-yy
- 如何将日期格式从 YYYY-DD-MM 转换为 DD-MM-YYYY
- 如何使用javascript将数据格式“YYYY-mm-dd hh:mm:ss”转换为“dd-mm-YYYY hh:mm