javascript 日期时间正则表达式

javascript datetime regExp

求助于正则表达式专家。 需要验证 2017-12-25 12:15:11 格式。 提前致谢

/^\d{4}([-/ ])\d{2}\d{2} \d{2}:\d{2}:\d{2}$/
/^\d{4}([-/ ])\d{2}\d{2} \d{2}:\d{2}:\d{2}$/.test("2017-12-25 12:15:11")  //copy to chrome console test true or false

let expression = /\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}/;
console.log(expression.test('2017-12-25 12:15:11'));

进一步了解 JS 中的正则表达式 Regular Expressions

使用正则表达式构建良好的日期时间字符串验证器将非常困难。您将不得不考虑不同的月份有不同的天数这一事实。闰年使它变得更加复杂。

为什么不使用 new Date('date string to validate')

`new Date("2017-12-22 12:15:11")` // Fri Dec 22 2017 12:15:11 GMT+0100 (Central European Standard Time)

`new Date("2017-12-32 12:15:11")` // Invalid Date

或者使用一些更强大的日期引擎,比如moment.js

var myDate = moment('2017-12-31 12:15:13', 'YYYY-MM-DD hh:mm:ss').isValid();
console.log(myDate) // true

var myDate = moment('2017-12-33 12:15:13', 'YYYY-MM-DD hh:mm:ss').isValid();
console.log(myDate) // false