用于验证日期时间格式的正则表达式(MM/DD/YYYY)

Sup*_*eet 22 javascript regex jquery

我正在尝试验证日期时间格式MM/DD/YYYY.这是我正在尝试的代码请帮助.

 function ValidateDate(testdate) {
        var Status
        var reg = /^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((19|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/g;
        if (!reg.test(testdate)) {
            Status = false;
        }
        return Status;
    }
Run Code Online (Sandbox Code Playgroud)

noi*_*rre 53

尝试使用像http://jsregex.com/(有很多)或更好的工具,单元测试你的正则表达式.

对于天真的验证:

function validateDate(testdate) {
    var date_regex = /^\d{2}\/\d{2}\/\d{4}$/ ;
    return date_regex.test(testdate);
}
Run Code Online (Sandbox Code Playgroud)

在你的情况下,为了验证(MM/DD/YYYY),在1900年到2099年之间,我会这样写:

function validateDate(testdate) {
    var date_regex = /^(0[1-9]|1[0-2])\/(0[1-9]|1\d|2\d|3[01])\/(19|20)\d{2}$/ ;
    return date_regex.test(testdate);
}
Run Code Online (Sandbox Code Playgroud)


Suj*_*nha 8

标记的答案是完美的,但对于一种情况,dd和mm实际上是单个数字.在这种情况下,以下正则表达式是完美的:

    function validateDate(testdate) {
        var date_regex = /^(0?[1-9]|1[0-2])\/(0?[1-9]|1\d|2\d|3[01])\/(19|20)\d{2}$/ ;
        return date_regex.test(testdate);
    }
Run Code Online (Sandbox Code Playgroud)