正则的捕获: 正则的exec方法/字符串的match方法/字符串的replace方法
replace: 将原有的字符替换成我们新的字符
var str = "2018-06-19 23:23:00";
// 2018年06月19日 23点23分00秒
// 设定好我们目标时间格式, 把数组中对应的项替换到指定的区域内
var resStr = "{0}年{1}月{2}日 {3}时{4}分{5}秒";
var ary = ["2018","6","19","23","23","0"];
// {0}替换成2015:首先要获取 {0}, 而且还要获取那个 0 ,这个 0 相当于ary数组中的索引, 要把对应的索引
var reg = /{(\d+)}/g;
resStr = resStr.replace(reg,function(){
// 每一次都会把正则匹配的内容捕获到: 如果没有分组,一般是三个参数;但是如果正则中有需要捕获的分组,
// 参数的个数就不确定了, 从arguments[1]开始就是对应分组捕获的内容, arguments[0]是大正则捕获的内容;
var num = arguments[1],val=ary[num];
val<10?val="0"+val:void 0;
return val;
})
console.log(resStr); // 2018年06月19日 23时23分00秒
// 第一步: 将指定格式的时间字符串中的年月日等信息存入一个数组;
var str = "2018-06-19 23:23:00",
reg = /^(\d{4})[-/](\d{1,2})[-/](\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2})$/g,
ary=[];
str.replace(reg, function(){
ary = [].slice.call(arguments);
ary = ary.slice(1,7);
})
// 第二步: 设定好目标时间格式, 把数组中对应的项替换到指定的区域内
var resStr = "{0}年{1}月{2}日 {3}时{4}分{5}秒",
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); // 2018年06月19日 23时23分00秒
// 在String的原型上实现一个方法: 吧指定时间格式
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 = "2018.6.19 23:23:00";
console.log(str.myFormatTime("{1}月{2}日")) // 06月19日
一隔四天没有更(xue)新(xi)... , 因为端午节了, 这几天一直在准备骑行深莞惠和骑行深莞惠的路上 , 刚好赶上太阳最毒的两天, 本来说深莞惠大环线的, 结果由于第一次长距离骑行加上太阳实在是太大, 骑了个小环线, 最最最关键是的是由于没有经验加掉以轻心,准备不充分, 导致皮肤严重晒伤(在这也奉劝要骑行的小伙伴,一定要把自己包裹严实了, 热不怕,只要水分补充够, 但是晒伤真的疼, 脱皮)