当前位置: 代码迷 >> JavaScript >> Javascript Date Regex例如。 2010-06-03
  详细解决方案

Javascript Date Regex例如。 2010-06-03

热度:50   发布时间:2023-06-13 12:29:34.0

我想要一个验证标题格式日期的函数。 我的功能出了什么问题?

function validateDate(date) {
 var pattern = new RegExp("^\d{4}-\d{2}-\d{2}$");
 if (pattern.test(date))
  return true;
 return false;
}

谢谢!

您需要使用正则表达式对象: /^\\d{4}-\\d{2}-\\d{2}$/或转义反斜杠: "^\\\\d{4}-\\\\d{2}-\\\\d{2}$"

此外,如果除日期之外的字符串中还有其他内容(例如空格),则此正则表达式将失败。

所以

var pattern = /^\s*\d{4}-\d{2}-\d{2}\s*$/;

可能是一个更好的选择。

此正则表达式(当然)不会检查有效日期,仅适用于由四位数字组成的字符串,连字符,两位数字,另一个连字符和另外两个数字。 你可能想要

  1. 使前导零可选(即使用\\d{1,2}而不是\\d{2}
  2. 在正则表达式之外执行实际日期验证。

你可以(使用正则表达式)来验证日期,但它们并不漂亮。 更糟糕的是,如果您想考虑闰年或限制日期范围。

这可行,但它将验证日期,如9999-99-99。

function validateDate( date )
{
  return /^\d{4}\-\d{2}\-\d{2}$/.test( date )
}

console.log( validateDate ( '2010-01-01' ) ); // True

这就是提供的一些帮助(我自己未经测试):

function validateDate(date) {
var pattern = new RegExp("(19|20)[0-9]{2}[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])");
var match = pattern.exec(date);
if (match != null) {
    return true;
} else {
   return false;    
}

}

--Reinhard

  相关解决方案