JavaScript中正则表达式的日期时间检测验证/转换格式化

第一种是吧”2017-06-14” 转为2017/6/14

代码如下:

var timeStr  =   "2017-06-14";
timeStr= timeStr.replace(/-0*/g,"\/");
console.log(timeStr);

转换:

转数字型

var ttDate = "2013年12月20日 14:20:20";
ttDate = ttDate.replace(/[^0-9]/mg, '').match(/.{8}/);
console.log(ttDate);//["20131220", index: 0, input: "20131220142020"]

转日期型:

var ttDate = "2017年06月14日 14:20:20";
ttDate = ttDate.match(/\d{4}.\d{1,2}.\d{1,2}/mg).toString();
ttDate = ttDate.replace(/[^0-9]/mg, '-');
console.log(ttDate);//2017-06-14

正则替换

var ttDate = "2017年06月14日 14:20:20";
ttDate = ttDate.replace(/(\d{4}).(\d{1,2}).(\d{1,2}).+/mg, '$1-$2-$3');
console.log(ttDate);//2017-06-14

检查是否为 YYYY-MM-DD  hh:mm:ss || YYYY-MM-DD  的日期格式

var timeStr1="2017-04-14 20:14:56";
var timeStr2="2017-04-14";
var timeReg1=/^(\d{4})\-(\d{2})\-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/;
console.log(timeReg1.test(timeStr1));//true
console.log(timeReg1.test(timeStr2));//false

var timeReg2=/^(\d{4})\-(\d{2})\-(\d{2})$/;
console.log(timeReg2.test(timeStr1));//false
console.log(timeReg2.test(timeStr2));//true

另外一个正则验证

var timeStr1="2017-04-14 20:14:56";
var timeStr2="2017-04-14";
var timeStr3="2017/04/14";
function validateCNDate( strValue ) {
var objRegExp = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/;
if(!objRegExp.test(strValue)){
return false;
} else{
var arrayDate = strValue.split(RegExp.$1);
var intDay = parseInt(arrayDate[2],10);
var intYear = parseInt(arrayDate[0],10);
var intMonth = parseInt(arrayDate[1],10);
if(intMonth > 12 || intMonth < 1) {
return false;
}
var arrayLookup = { '1' : 31,'3' : 31, '4' : 30,'5' : 31,'6' : 30,'7' : 31,
'8' : 31,'9' : 30,'10' : 31,'11' : 30,'12' : 31};
if(arrayLookup[parseInt(arrayDate[1])] != null) {
if(intDay <= arrayLookup[parseInt(arrayDate[1])] && intDay != 0)
return true;
}
if (intMonth-2 ==0) {
var booLeapYear = (intYear % 4 == 0 && (intYear % 100 != 0 || intYear % 400 == 0));
if( ((booLeapYear && intDay <= 29) || (!booLeapYear && intDay <=28)) && intDay !=0)
return true;
}
}
return false;
}
console.log(validateCNDate(timeStr1));//false
console.log(validateCNDate(timeStr2));//true
console.log(validateCNDate(timeStr3));//true

小时:分钟 的正则表达式.

var regTime = /^(([01]?[0-9])|(2[0-3])):[0-5]?[0-9]$/;
console.log(regTime.test("4:59"));//true
console.log(regTime.test("04:59"));//true
console.log(regTime.test("4:09"));//true
console.log(regTime.test("4:9"));//true

别的版本正则验证

var reg1 = /^(([1-9]\d{3})\-(((0[13578]|1[02])\-(0[1-9]|[12]\d|3[01]))|((0[469]|11)\-(0[1-9]|[12]\d|3[0]))|(02\-(0[1-9]|1\d|2[0-8])))|([1-9]\d{3})\/(((0[13578]|1[02])\/(0[1-9]|[12]\d|3[01]))|((0[469]|11)\/(0[1-9]|[12]\d|3[0]))|(02\/(0[1-9]|1\d|2[0-8]))))$/;//日期格式为:2014/11/20或者2014-11-20 ,可以为空
var reg2 = /^(0|([1-9]\d*)|)$/;//必须为正整数,可为空
var reg3 = /^((\d\:\d{2}\s+(am|AM|pm|PM))|)$/;//格式为 0:00 am 0:00 pm 可以为空,不区分大小写 am或者pm中间可以没有间隔

console.log(reg1.test('2017/11/20'));//true
console.log(reg1.test('2017-11-20'));//true
console.log(reg2.test('1'));//true
console.log(reg2.test(''));//true
console.log(reg3.test('0:00 am'));//true

~~~~

~~~~~

未经允许不得转载:WEB前端开发 » JavaScript中正则表达式的日期时间检测验证/转换格式化

赞 (0)