【问题标题】:regular expression for validating dates [duplicate]用于验证日期的正则表达式 [重复]
【发布时间】:2013-11-02 18:36:39
【问题描述】:

我想知道是否有一个正则表达式模式可以验证信用卡到期日期是否早于今天。

在我的表单中,我有用户输入信用卡到期日期,并且需要某种客户端验证,因为我们使用网关提供商的直接发布 API,并且在此过程中不会发生服务器端验证。

日期字段位于 2 个单独的字段中,分别是月份和年份,但我们需要确保在将它们提交到网关之前捕获它们,以防万一它失败,因为网关返回我们无法避免的丑陋字符串消息。

对此的任何想法将不胜感激。

【问题讨论】:

    标签: jquery regex validation credit-card


    【解决方案1】:
    new Date().getTime() < new Date(year, month + 1).getTime()
    

    + 1 弥补了我们想要月底而不是月初这一事实。 (这里假设月份从 0 开始编号。)根据docs page for Date,如果month 参数因此超出范围也没关系。

    【讨论】:

      【解决方案2】:

      您可以像这样进行简单的检查:

      function isCCExpired(month, year) {
          var d = new Date();
      
          return (d.getFullYear() < year || d.getMonth() < month)
      }
      

      【讨论】:

      • d.getFullYear() &lt; year || d.getFullYear() === +year &amp;&amp; d.getMonth() &lt; month,实际上。
      • 另外,你不需要写if (condition) return true; else return false;。您只需要return condition;。 (在某些情况下,您可能希望转换为布尔值,但在这种情况下,这并不重要。)
      • 谢谢@david,我更新了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-30
      • 2013-04-22
      • 2013-02-18
      • 2011-05-16
      相关资源
      最近更新 更多