• 时间字符串格式化及获取URL地址问号后面的参数信息(可能也包含hash值)及千分符


          
            ~function(){
              /*
              *formatTime时间格式化处理
              * @params
              *   templete:[string]我们最后期望获取日期格式的模板
              *   模板规则:{0} 年 {2-5}->月日时分秒
              * @return
              *   [string]格式化后的时间字符串
              */
              function formatTime(templete="{0}年{1}月{2}日 {3}时{4}分{5}秒"){
                //首先获取时间字符串中的年月日等信息
                let timeAry = this.match(/d+/g); //['2020','4','12','11','29','30']
                return templete.replace(/{(d+)}/g,(...[content,$1])=>{
                  //content:当前本次大正则匹配的信息,$1:本次小组单独匹配的信息
                  //以$1的值作为索引,到timeAry中找到对应的时间(如果没有则用'00'补)
                  let time = timeAry[$1] || '00';
                  return time.length < 2 ? time = '0'+time : time;
                })
              }
              /*
              *queryURLParams:获取URL地址问号后面的参数信息(可能也包含hash值)
              * @params
              * @return
              *   [object]把所有问号参数信息以键值对的方式储存起来并且返回对象
              */
              function queryURLParams(){
                let obj = {};
                this.replace(/([^?&=#]+)=([^?&=#]+)/g,(...[,$1,$2])=> obj[$1]=$2)
                this.replace(/#([^?&=#]+)/g,(...[,$1])=>obj['HASH']=$1)
                return obj;
              }
              /*
               * milliMeter:千分符
               * @return
               *    [string]千分符后的字符串
               */
              function milliMeter(){
                return this.replace(/d{1,3}(?=(d{3})+$)/g,(content)=> content+',')
              }
              /*扩展到内置类Sring.prototype上*/
              ['formatTime','queryURLParams','milliMeter'].forEach(item=>{
                String.prototype[item]=eval(item);
              })
            }()
            let time = '2020-4-12 11:29:30';
            console.log(time.formatTime());//2020年04月12日 11时29分30秒
            console.log(time.formatTime('{0}年{1}月{2}日'));//2020年04月12日
            time = '2010/4/22';
            console.log(time.formatTime());//2010年04月22日 00时00分00秒
            console.log(time.formatTime('{1}-{2}')); //04-22
            let url = 'http://www.baidu.com?id=2&name=lili#value'
            console.log(url.queryURLParams()); //{id: "2", name: "lili", HASH: "value"}
            let num = '78478427213333';
            console.log(num.milliMeter()); //78,478,427,213,333
            
            
  • 相关阅读:
    Centos8 静态IP设置
    2022年1月6号 LocalDateTime触发列无效问题
    2021年12月14日复盘(Oracle Not In,Limit 1000)
    2022年1月2日复盘 线上CPU飙升
    2021年12月16日复盘 JSQLParser 命中Oracle关键词报错
    2022年1月5号 on update CURRENT_TIMESTAMP无效情况记录
    2021年12月21日复盘 雪花算法 服务器时钟偏移错误
    Centos替换源
    2021年12月9日复盘 前端日期少8小时
    WPF中DataContext作用
  • 原文地址:https://www.cnblogs.com/itsmart/p/12684440.html
Copyright © 2020-2023  润新知