【问题标题】:Javascript RegEx: validate date timeJavascript RegEx:验证日期时间
【发布时间】:2013-05-13 16:16:52
【问题描述】:

我不太擅长正则表达式。我对正则表达式感到沮丧。

例子:

我有以下日期时间:05/16/2013 12:00 am

我需要一个尊重这种格式的 javascript 正则表达式:mm/dd/yyyy hh:mm [am/pm]

 var dateReg = /^[0,1]?\d{1}\/(([0-2]?\d{1})|([3][0,1]{1}))\/(([1]{1}[9]{1}[9]{1}\d{1})|([2-9]{1}\d{3}))$/;
if(!dateReg.test(inputVal)) {
    $(this).after('<span class="error error-keyup-5">Invalid date format.</span>');
}

但此代码仅适用于日期,不适用于时间。感谢您的帮助。

【问题讨论】:

  • 您希望您的日期在每个国家/地区都有效吗?例如 16/5/2013 12:00 ?

标签: javascript jquery regex date time


【解决方案1】:

你的代码 sn-p 只匹配日期,没有原子匹配时间。你的正则表达式应该是:

dateReg = /^[0,1]?\d\/(([0-2]?\d)|([3][01]))\/((199\d)|([2-9]\d{3}))\s[0-2]?[0-9]:[0-5][0-9] (am|pm)?$/

【讨论】:

    【解决方案2】:

    上午/下午时间的正则表达式可以找到here:

    /^(0?[1-9]|1[012])(:[0-5]\d) [APap][mM]$/
    

    【讨论】:

      【解决方案3】:

      您不应该自己解析日期和时间。找一个好的图书馆来做。 d3.js 包含对根据您指定的格式解析日期和时间的良好支持。见https://github.com/mbostock/d3/wiki/Time-Formatting

      【讨论】:

        猜你喜欢
        • 2012-07-09
        • 1970-01-01
        • 1970-01-01
        • 2015-07-18
        • 2016-11-28
        • 2017-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多