Javascript正则表达式匹配一个时间格式的字符串
本示例结合正则表达式,以及Date对象的 getMonth 、 getDate 方法,简单地验证时间的字符串。仅匹配格式如:2016-02-29 23:02:03,不匹配 2016/02/29 23:02:03
注意的是:
- getMonth 为基于0的值(0表示一年中的第一月)
- 获取某个月份的最后一天:
var lastDay = new Date(year, month, 0).getDate();
匹配方法如下
function validateDateTime(testdate) {
var date_regex = /((19|20)[0-9]{2})-(0?[1-9]|1[012])-(0?[1-9]|[12][0-9]|3[01]) ([01]?[0-9]|2[0-3]):[0-5]?[0-9]:[0-5]?[0-9]/;
var res = date_regex.test(testdate);
if(res) {
var ymd = testdate.match(/(\d{4})-(\d+)-(\d+).*/);
var year = parseInt(ymd[1]);
var month = parseInt(ymd[2]);
var day = parseInt(ymd[3]);
if(day > 28) {
//获取当月的最后一天
var lastDay = new Date(year, month, 0).getDate();
return (lastDay >= day);
}
return true;
}
return false;
}
调用示例
var format = "2016-02-29 23:2:3";
validateDateTime(format);
// true
亲自试一试:Demo
非特殊说明,本网站所有文章均为原创。如若转载,请注明出处:https://mip.cpming.top/p/javascript-validate-date-time-string