javascript 中的 MM/DD/YYYY HH:MM:SS AM/PM 日期验证正则表达式

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/24375711/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-28 02:40:08  来源:igfitidea点击:

MM/DD/YYYY HH:MM:SS AM/PM date validation regular expression in javascript

javascriptregexdatedatetime

提问by user3050590

I am trying to validate a date in format MM/DD/YYYY HH:MM:SS AM/PM in javascript. I am unable to find any good answer tried other results but did not work. This issue has been asked for asp.net but not with javascript in the following question:

我正在尝试在 javascript 中以 MM/DD/YYYY HH:MM:SS AM/PM 格式验证日期。我无法找到任何好的答案尝试其他结果但没有奏效。在以下问题中,asp.net 已询问此问题,但 javascript 未询问此问题:

Regular expression for date time format "MM/DD/YY HH:mm:ss AM/PM" in asp.net regular expression validator

asp.net正则表达式验证器中日期时间格式“MM/DD/YY HH:mm:ss AM/PM”的正则表达式

but has not helped me. Example dates that I need to check is 05/13/2012 12:00:00 AM

但没有帮助我。我需要检查的示例日期是 05/13/2012 12:00:00 AM

I am validating the data cells in the csv file. These cells have some dates in the above format as well. I am checking the labels to these cells. like DATE, STRING etc. I am new thus dont know how to create them myself.

我正在验证 csv 文件中的数据单元格。这些单元格也有一些上述格式的日期。我正在检查这些单元格的标签。像日期、字符串等。我是新手,因此不知道如何自己创建它们。

回答by hex494D49

Date validation with regular expressions in JavaScript.

使用 JavaScript 中的正则表达式进行日期验证。

The expressions below validate any date from 01-01-1900 00:00:00 AM.

下面的表达式验证从 01-01-1900 00:00:00 AM 开始的任何日期。

Date format: mm[/.-]dd[/.-]yyyy hh:mm:ss am|pm

日期格式:mm[/.-]dd[/.-]yyyy hh:mm:ss am|pm

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('06/12/2014 12:45:56 AM'); // true
r.test('11-12-1965 06:04:34 PM'); // true
r.test('11/31/2015 11:40:00 AM'); // false
r.test('12-31-1945 01:38:09 PM'); // true
r.test('02/29/2012 09:04:10 AM'); // true [leap year]
r.test('02/29/2013 09:04:10 AM'); // false
r.test('06.12.2014 13:04:10 AM'); // false

Date format: dd[/.-]mm[/.-]yyyy hh:mm:ss am|pm

日期格式:dd[/.-]mm[/.-]yyyy hh:mm:ss am|pm

var r = /^(((0[1-9]|[12]\d|3[01])[\/\.-](0[13578]|1[02])[\/\.-]((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[1-9]|[12]\d|30)[\/\.-](0[13456789]|1[012])[\/\.-]((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[1-9]|1\d|2[0-8])[\/\.-](02)[\/\.-]((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))|((29)[\/\.-](02)[\/\.-]((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('12/06/2014 12:45:56 AM'); // true
r.test('12-11-1965 06:04:34 PM'); // true
r.test('31/11/2015 11:40:00 AM'); // false
r.test('21-12-1945 01:38:09 PM'); // true
r.test('29/02/2012 09:04:10 AM'); // true [leap year]
r.test('29/02/2013 09:04:10 AM'); // false
r.test('12.06.2014 13:04:10 AM'); // false

Date format: dd[/.-]mm[/.-]yyyy hh:mm:ss

日期格式:dd[/.-]mm[/.-]yyyy hh:mm:ss

var r = /^(((0[1-9]|[12]\d|3[01])[\/\.-](0[13578]|1[02])[\/\.-]((19|[2-9]\d)\d{2})\s(0[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]))|((0[1-9]|[12]\d|30)[\/\.-](0[13456789]|1[012])[\/\.-]((19|[2-9]\d)\d{2})\s(0[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]))|((0[1-9]|1\d|2[0-8])[\/\.-](02)[\/\.-]((19|[2-9]\d)\d{2})\s(0[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]))|((29)[\/\.-](02)[\/\.-]((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))\s(0[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])))$/g;

r.test('24/06/2014 15:08:05'); // true
r.test('29/02/2016 23:19:20'); // true [leap year]
r.test('29/02/2015 23:19:20'); // false
r.test('31/11/2010 10:00:02'); // false

Date format: yyyy[/.-]mm[/.-]dd hh:mm:ss

日期格式:yyyy[/.-]mm[/.-]dd hh:mm:ss

var r = /^((((19|[2-9]\d)\d{2})[\/\.-](0[13578]|1[02])[\/\.-](0[1-9]|[12]\d|3[01])\s(0[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]))|(((19|[2-9]\d)\d{2})[\/\.-](0[13456789]|1[012])[\/\.-](0[1-9]|[12]\d|30)\s(0[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]))|(((19|[2-9]\d)\d{2})[\/\.-](02)[\/\.-](0[1-9]|1\d|2[0-8])\s(0[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))[\/\.-](02)[\/\.-](29)\s(0[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])))$/g;

r.test('2014-06-24 15:49:05'); // true
r.test('2016-02-29 23:19:20'); // true [leap year]
r.test('2015/02/29 23:19:20'); // false
r.test('2010.11.31 10:00:02'); // false
r.test('1956.10.12 24:10:02'); // false