js笔记正则程序员

js笔记四十九之正则表达式(5)

2018-06-19  本文已影响18人  uplyw

正则的捕获: 正则的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)... , 因为端午节了, 这几天一直在准备骑行深莞惠和骑行深莞惠的路上 , 刚好赶上太阳最毒的两天, 本来说深莞惠大环线的, 结果由于第一次长距离骑行加上太阳实在是太大, 骑了个小环线, 最最最关键是的是由于没有经验加掉以轻心,准备不充分, 导致皮肤严重晒伤(在这也奉劝要骑行的小伙伴,一定要把自己包裹严实了, 热不怕,只要水分补充够, 但是晒伤真的疼, 脱皮)

骑行轨迹
上一篇下一篇

猜你喜欢

热点阅读