通过JavaScript验证日期('MMMM DD YYYY')格式

时间:2018-01-01 15:07:10

标签: javascript jquery date

任何人都可以帮我理解javascript正则表达式匹配 通过JavaScript验证January-01-2018日期格式('MMMM DD YYYY')?

我之前为以下日期做过验证:

var date = "2017/01/13";
var regex = /^[0-9]{4}[\/][0-9]{2}[\/][0-9]{2}$/g;
console.log(regex.test(date));    // true
console.log(regex.test("13/01/2017")); //false
console.log(regex.test("2017-01-13")); // false

2 个答案:

答案 0 :(得分:0)

Date.prototype.fromString = function(str, ddmmyyyy) {
    var m = str.match(/(\d+)(-|\/)(\d+)(?:-|\/)(?:(\d+)\s+(\d+):(\d+)(?::(\d+))?(?:\.(\d+))?)?/);
    if(m[2] == "/"){
        if(ddmmyyyy === false)
            return new Date(+m[4], +m[1] - 1, +m[3], m[5] ? +m[5] : 0, m[6] ? +m[6] : 0, m[7] ? +m[7] : 0, m[8] ? +m[8] * 100 : 0);
        return new Date(+m[4], +m[3] - 1, +m[1], m[5] ? +m[5] : 0, m[6] ? +m[6] : 0, m[7] ? +m[7] : 0, m[8] ? +m[8] * 100 : 0);
    }
    return new Date(+m[1], +m[3] - 1, +m[4], m[5] ? +m[5] : 0, m[6] ? +m[6] : 0, m[7] ? +m[7] : 0, m[8] ? +m[8] * 100 : 0);
}

答案 1 :(得分:-1)

您可以让Date构造函数处理它而不是正则表达式

function isValidDate(date){
    return typeof(date) === 'string' && new Date(date) != "Invalid Date";
}