• javascript extend


    interface  Date{
        addHours(h:number);
        addMinutes(m:number);
        format(str):string
    }
    
    interface String{
        trim():string;
        solrFormat():string;
    }
    
    interface Array<T> {
        clear();
        removeByIndex(index:number);
        remove(fn:(t:T)=>boolean);
    }
    
    (function(){
    
        Date.prototype.addHours= function(h:number) {
            this.setTime(this.getTime() + (h*60*60*1000));
            return this;
        } ;
        Date.prototype.addMinutes= function(m:number) {
            this.setTime(this.getTime() + (m*60*1000));
            return this;
        } ;
        Date.prototype.format=function(fmt:string="yyyy-MM-dd hh:mm:ss"):string {
            let date=this;
            if(!date){
                return date;
            }
            if (fmt === undefined || fmt === "" || fmt === null) {
                fmt = "yyyy-MM-dd hh:mm:ss";
            }
    
            let o = {
                "M+": date.getMonth() + 1,                 //月份
                "d+": date.getDate(),                    //
                "h+": date.getHours(),                   //小时
                "m+": date.getMinutes(),                 //
                "s+": date.getSeconds(),                 //
                "q+": Math.floor((date.getMonth() + 3) / 3), //季度
                "S": date.getMilliseconds()             //毫秒
            };
            if (/(y+)/.test(fmt))
                fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
            for (let k in o)
                if (new RegExp("(" + k + ")").test(fmt))
                    fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
            return fmt;
        };
        if(!String.prototype.trim){
            String.prototype.trim=function () {
                return this.replace(/^[suFEFFxA0]+|[suFEFFxA0]+$/g, '')||"";
            }
        }
        String.prototype.solrFormat=function () {
           if(!this){
             return this;
           }
           let str= this.replace(/[(){}[]^*&%#$@!<>?=:'"]/g,"");
           str=this.replace(/-/,"\-");
           return str.replace(/[ +]/g,"\ ")
        };
        Array.prototype.clear=function () {
            this.splice(0,this.length);
        }
        Array.prototype.removeByIndex= function(index:number) {
            this.splice(index,1);
        };
        Array.prototype.remove= function(fn:(t:any)=>boolean) {
            let items = this.filter(fn);
            let that=this;
            items.forEach(function (item) {
                let index = that.indexOf(item);
                this.removeByIndex(index);
            })
        };
    })();
    d.ts  declare file
    declare  interface  Date{
        addHours(h:number);
        addMinutes(m:number);
        format(str):string
    }
    
    declare interface String{
        trim();
        solrFormat():string;
    }
    
    declare interface   Array<T> {
        clear();
        removeByIndex(index:number);
        remove(fn:(t:T)=>boolean);
    }
  • 相关阅读:
    Redis 的基本操作、Key的操作及命名规范
    python离线安装外部库(第三方库)
    STL之deque
    STL之list
    STL学习之vector
    STL三种标准容器
    Lua系统库
    Lua输入输出库
    Lua字符串库
    Lua面向对象
  • 原文地址:https://www.cnblogs.com/Zoes/p/7485194.html
Copyright © 2020-2023  润新知