正则实现时间字符串格式化并在原型上实现一个方法
var str = "2021-02-23 10:08:50", reg = /^(\d{4})[-/](\d{1,2})[-/](\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2})$/, ary = [];
str.replace(reg, function() {
ary = ([].slice.call(arguments)).slice(1,7);
});
var resStr = "{0}年{1}月{2}日 {3}时{4}分{5}秒";
var reg = /{(\d+)}/g;
resStr = resStr.replace(reg, function() {
var num = arguments[1], val = ary[num];
val.length === 1 ? val = "0" + val : void 0;
return val;
})
console.log(resStr)
String.prototype.myFormatTime = function() {
var reg = /^(\d{4})(?:-|\/|\.|:)(\d{1,2})(?:-|\/|\.|:)(\d{1,2})(?:\s+)(\d{1,2})(?:-|\/|\.|:)(\d{1,2})(?:-|\/|\.|:)(\d{1,2})$/g;
var ary = [];
this.replace(reg, function() {
ary = ([].slice.call(arguments)).slice(1,7);
});
var format = arguments[0] || "{0}年{1}月{2}日 {3}:{4}:{5}";
return format.replace(/{(\d+)}/g, function() {
var val = ary[arguments[1]];
return val.length === 1 ? "0" + val : val;
});
}
var str = "2021/2/23 15:12:33";
console.log(str.myFormatTime("{0}年{1}月{2}日"));