Javascript RegEx:验证日期时间

时间:2013-05-18 17:16:39

标签: javascript jquery regex date time

我对正则表达式不太满意。我对正则表达式感到沮丧。

示例:

我有以下日期时间: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>');
}

但是此代码仅适用于日期,而不适用于时间。谢谢你的帮助。

3 个答案:

答案 0 :(得分:2)

您的代码段仅与日期匹配,没有与时间匹配的原子。你的正则表达式应该是:

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)?$/

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

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