0

我有这个正则表达式来检查日期输入:

/^[0-9]{2}-[0-9]{2}-[0-9]{4}$|^$/

我还需要它来确保遵循 MM-DD-YYYY 格式。
我已经尝试过这些,但它们不起作用。

/^[01-12]-[01-31]-[0-9]{4}$|^$/
/^['01'-'12']-['01'-'31']-[0-9]{4}$|^$/

我怎样才能让这个也检查以确保 MM 部分是 01-12 而 DD 部分只是
01-31?

4

3 回答 3

0

这是一个可以帮助您的正则表达式: Javascript date regex DD/MM/YYYY

请考虑将要验证的字符串转换为日期对象并查看其是否有效。这实际上会验证它并且不会接受像 31-02-9999 这样的日期

于 2013-05-03T14:10:12.827 回答
0

使用纯正则表达式有点疯狂,我会使用正则表达式+条件检查,如下所示:

  1. 检查正则表达式/^[0-9]{1,2}-[0-9]{1,2}-[0-9]{4}$/
  2. // 假设 myDate 是你的字符串

    var dateParts = myDate.split('-'); var bDateIsValid = ( Number( dateParts[0] ) <= 12 && Number( dateParts[0] ) >=1 ) && ( Number( dateParts[1] ) <= 31 && Number( dateParts[1] ) >=1 )

如果您愿意,您还可以添加日期

于 2013-05-03T13:57:56.243 回答
0

尝试这个

/^[0-1]{1}[1-2]{1}-[0-3]{1}[1-2]{1}-[0-9]{4}$|^$/
于 2013-05-03T13:50:54.063 回答