javascript - 使用正则表达式验证日期

标签 javascript regex validation

我需要一个正则表达式来模式匹配以下内容 -

mm/dd/yyyy

以下日期条目应通过验证:

  • 2012 年 5 月 3 日
  • 2012 年 5 月 3 日
  • 2012 年 5 月 3 日
  • 2012 年 5 月 3 日

此外,在验证上述regex之后,将上述日期string转换为Date对象的最佳方法是什么?

最佳答案

您应该使用 split、parseInt 和 the Date constructor 一次性完成检查和解析。 :

function toDate(s) {
  var t = s.split('/');
  try {
     if (t.length!=3) return null;
     var d = parseInt(t[1],10);
     var m = parseInt(t[0],10);
     var y = parseInt(t[2],10);
     if (d>0 && d<32 && m>0 && m<13) return new Date(y, m-1, d);
  } catch (e){}
}

var date = toDate(somestring);
if (date) // ok
else // not ok

DEMONSTRATION :

01/22/2012 ==> Sun Jan 22 2012 00:00:00 GMT+0100 (CET)
07/5/1972 ==> Wed Jul 05 1972 00:00:00 GMT+0100 (CEST)
999/99/1972 ==> invalid

正如本页的其他答案一样,这对于 2 月的 31 来说不会令人窒息。这就是为什么出于所有严肃的目的,您应该使用像 Datejs 这样的库。 .

关于javascript - 使用正则表达式验证日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12933290/

相关文章:

javascript - 在警报中显示之前格式化字符串以添加\n?

javascript - 选择字符串中第 n 个数字和第 n 个数字正则表达式之间的所有字符

php - 在 Redbean PHP 中验证

javascript - 如何防止 jointjs 中的元素接触/碰撞?

javascript - react native api 调用响应

python - 将字典中的所有替换正则表达式应用到给定文本的最快方法

c# - 根据 [].[] + [].[] 中的正则表达式 [].[] 和 [].[] 拆分字符串

android - 如何在 Android 的 EditText 中验证 URL/网站名称?

c# - 使用 .NET WebAPI 进行服务器端验证

javascript - 我如何使用 Javascript 从他们的 cookie 中提取 Google Analytics 事件数据?