需要在 Javascript 中验证 MM/dd/yyyy hh:mm tt

2024-04-10

我需要在 Javascript 中验证特定格式的日期字符串。

格式为:MM/dd/yyyy hh:mm tt

我很难找到可以处理它的日期库,或者可以执行相同操作的正则表达式函数。

我尝试过 Date.js,它很接近,但有以下问题:

date.parseExact('10/21/2011 06:00 AM', ['MM/dd/yyyy hh:mm tt']); //passes
date.parseExact('10/21/2011 06:00 A', ['MM/dd/yyyy hh:mm tt']); //passes

第二个应该不会通过。

有谁知道可以满足这种需求的正则表达式,或者我是否使用了 Date.js 库错误?任何帮助将不胜感激,我已经把头撞在墙上了两个小时的大部分时间。


您是否需要验证它是实际日期,还是只是遵循确切的格式?如果只是格式,您可以使用此正则表达式:

/[0-1]\d\/[0-3]\d\/\d{4} [0-1]\d:[0-5]\d [aApP][mM]/

您可以将 Date.js 与上述正则表达式结合使用来验证它是否是有效日期,并与您的确切格式匹配。例子:

01/01/9999 01:00 AM - matches
12/31/9999 01:59 PM - matches
99/99/9999 99:99 AM - no match (day/month out of range)
12/31/9999 99:59 PM - no match (hours out of range)
01/01/9999 99:99 A  - no match (no match on A)

完整的 JS 示例:

var re = /[0-1]\d\/[0-3]\d\/\d{4} [0-1]\d:[0-5]\d [AP][M]/; // [aApP][mM] for case insensitive AM/PM
var date = '10/21/2011 06:00 AM';
if (re.test(date) && date.parseExact(date, ['MM/dd/yyyy hh:mm tt']){
    // date is exact format and valid
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

需要在 Javascript 中验证 MM/dd/yyyy hh:mm tt 的相关文章

随机推荐