"2018年09月22日 13时10分00秒" 时间字符串格式化思路...">
美文网首页
正则-时间字符串格式化

正则-时间字符串格式化

作者: 子心_ | 来源:发表于2019-06-16 14:28 被阅读0次

    "2018-9-22 13:10:0" ——>"2018年09月22日 13时10分00秒"

    时间字符串格式化思路:
    {0}替换成2018:我们首先要获取{0},而且我们还要获取那个0,这个0相当于我们ary数组中的索引,我们要做的就是把对应索引的内容替换我们的{0}。
    每一次都会把正则匹配的内容捕获到:如果没有分组,一般是三个参数;但是如果正则中有需要捕获的分组,参数的个数就不确定了,从arguments[1]开始就是对应分组捕获的内容,arguments[0]是大正则捕获的内容。

    第一步:将指定格式的时间字符串中的年月日等信息存入一个数组

    var str = "2018-9-22 13:10:0", 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)).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;
      retrun val;
    });
    console.log(resStr);
    

    相关文章

      网友评论

          本文标题:正则-时间字符串格式化

          本文链接:https://www.haomeiwen.com/subject/scowfctx.html