简体   繁体   中英

Javascript RegEx: validate date time

I am not very good with regex. I am being frustrated by a regular expression.

Example:

I have the following date time: 05/16/2013 12:00 am

I need a javascript regex that respect this format: 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>');
}

But this code works only for date, not with time. Thanks for your help.

Your code snippet does only match the date, there are no atoms to match the time. Your regexp should be:

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

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

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

You should not be parsing dates and times yourself. Find a good library to do it. d3.js contains fine support for parsing dates and times according to formats you specify. See https://github.com/mbostock/d3/wiki/Time-Formatting .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM