【问题标题】:How to validate date in Javascript using Regex? [duplicate]如何使用正则表达式在 Javascript 中验证日期? [复制]
【发布时间】:2019-12-05 23:07:05
【问题描述】:

我需要制作 JavaScript 函数来验证用户在输入字段中输入的日期。有效的日期格式必须是 yyyyMMdd。如何编写正则表达式代码来验证此输入日期格式?此日期格式有效:2019/12/01 和 2019-12-01。不允许使用所有其他格式。

【问题讨论】:

  • 你为什么要让用户输入所有这些,除非你真的在测试他们输入日期的能力?只需创建一个日期字段。
  • 您需要的不仅仅是正则表达式 - 因为月份的天数不同,而一个月的天数也不一致......所以,当然,使用正则表达式进行初步验证@ 987654321@ 但是您需要代码来验证 28 以上的日期,因为这就是不一致的地方 - 并且由于您将使用代码进行验证,您不妨只使用一个简单的 /^(\d{4})[/-](\d\d)[/-](\d\d)$/ 进行初步验证
  • 使用正则表达式进行日期验证有点棘手。您应该仔细检查两个 format,然后对值进行一些验证。 IE。 2019-02-30 根据格式有效,但未通过任何其他检查,因为 2 月在 2019 年没有 30 天(或者,你知道吗?)

标签: javascript regex


【解决方案1】:

这是一个有趣的话题......它从简单的解决方案开始:

\d{4}(-|\/)\d{2}\1\d{2}

在这个解决方案中,我们有 4 个数字,比 - 或 /,比 2 个数字,比之前使用的分隔符(- 或 /)多 2 个数字......这是比

更好的解决方案
\d{4}[-\/]\d{2}[-\/]\d{2}

因为在第二个 2019-12/01 将通过验证,在第一个将不会通过...

但是当您就该主题进行更多集思广益时...您可能希望验证比这更聪明,因此下一步将是

[12]\d{3}(-|\/)\d{2}\1\d{2}

在这种情况下,年份必须以 1 或 2 开头...比天空是您将包括的其他内容的限制...

抱歉写了太多,但验证总是很有趣的话题

【讨论】:

    【解决方案2】:

    我需要制作 JavaScript 函数来验证用户输入的日期 在输入字段内。

    如果可以,您最好改用<input type="date">

    工作示例:

    <input type="date">

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-03
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多