美文网首页
js的一些工具方法

js的一些工具方法

作者: 柏衡 | 来源:发表于2017-03-10 22:59 被阅读0次
[obj判断类型:返回传递给他的任意对象的类]
    isClass:function(o){
        if(o===null) return "Null";
        if(o===undefined) return "Undefined";
        return Object.prototype.toString.call(o).slice(8,-1);
    },
[数组及对象深拷贝]
var arr = [1,'2',{a:1,b:[1,2]}];
function deepCopy(p, c) {    
    var c = c || {};    
    for (var i in p) {      
        if (typeof p[i] === 'object' && p[i] !== null) {        
            c[i] = (p[i].constructor === Array) ? [] : {};        
            deepCopy(p[i], c[i]);      
        } else {         
            c[i] = p[i];      
        }    
    }    
    return c;  
}
var cArr = deepCopy(arr);
console.log(cArr);
[列表排序:按元素的key]
ArraySortKey:function(key,desc) {
        desc = desc || false;
        return function(a,b){
            return desc ? ~~(a[key] < b[key]) : ~~(a[key] > b[key]);
        }
    },
[console override]
    to:function(){
       console.log.apply(console, arguments);
    }
[伪DOM Events]
export default {
    listenterList:[],
    events:{
        test:"test",
    },
    addEvent: function(type, fn) {
        if (typeof this.listenterList[type] === "undefined") {
            this.listenterList[type] = [];
        }
        if (typeof fn === "function") {
            this.listenterList[type].push(fn);
        }
        return this;
    },
    triggerEvent: function(type, _arg) {
        var arrayEvent = this.listenterList[type];
        if (arrayEvent instanceof Array) {
            for (var i = 0; i < arrayEvent.length; i++) {
                if (typeof arrayEvent[i] === "function") {
                    arrayEvent[i].apply(this, [_arg]);
                }
            }
        }
    },
    removeEvent: function(type, fn) {
        var arrayEvent = this.listenterList[type];
        if (typeof type == "string" && arrayEvent instanceof Array) {
            if (typeof fn === "function") {
                for (var i = arrayEvent.length - 1; i >= 0; i--) {
                    if (arrayEvent[i] === fn) {
                        this.listenterList[type].splice(i, 1);
                        // console.log("removeEvent success:", arrayEvent, fn)
                        break;
                    }
                }
            } else {
                delete this.listenterList[type];
            }
        }
        return this;
    },
    removeEvents: function() {
        for (var type in this.listenterList) {
            this.removeEvent(type);
        }
    }
}
[reg验证]
    reg_url:/^(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/,//url
    reg_email:/\w+[@]{1}\w+[.]\w+/,//email
    reg_ip:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/,//ip
    regMatches:function(_reg, _str){
        if(_reg.test(_str)){
            return true;
        }else{
            return false;
        }
    }
[分页计算]
    paging:function(_currpage, _totalPage, _amount){
        var _min = _currpage-parseInt(_amount/2);
        if(_min<1) _min = 1;
        var _max = _min+_amount-1;
        if(_max>_totalPage) _max = _totalPage;
        
        var _pageNumberlist = [];
        for(var i=_min; i<=_max; i++){
            _pageNumberlist.push(i);
        }

        var _obj = {}
        _obj.page = _currpage;//当前页
        _obj.pages = _totalPage;//总页数
        _obj.pageMin = _min;//最小显示页
        _obj.pageMax = _max;//最大显示页
        _obj.numberlist = _pageNumberlist;//显示页码列表
        return _obj;
    }
[获取距今天dayCount天后的日期 "yy-mm-dd"]
    getDateStr: function(dayCount) {
        var dd = new Date();
        dd.setDate(dd.getDate() + dayCount);
        var y = dd.getFullYear();
        var m = dd.getMonth() + 1;
        var d = dd.getDate();
        return y + "-" + m + "-" + d;
    },
["yy-mm-dd"转日期]
    getDate_byStr: function(_str) {
        return new Date(Date.parse(_str.replace(/-/g, "/")));
    },

相关文章

  • js的一些工具方法

    [obj判断类型:返回传递给他的任意对象的类] [数组及对象深拷贝] [列表排序:按元素的key] [consol...

  • arcgis js 4 与d3.js 构建可视化(基础)

    这次我们用d3.js 来构建可视化 首先我们 定义一些坐标转换的工具方法 toScreen 方法 ```javas...

  • react-native 防止重复点击

    工具类: NoDoublePress.js 使用方法:

  • js 工具方法

    格式化时间 将数据转换为保留两位小数的数据

  • js工具方法

    js彻底冻结一个对象 除了将对象本身冻结,对象的属性也应该冻结。下面是一个将对象彻底冻结的函数。 js深拷贝一个对...

  • js工具方法

    1 数字转中文 常用正则校验和部分工具方法

  • js工具方法

    1.获取参数 functiongetParams(){ var url = location.search; /...

  • js工具方法

    转载至https://segmentfault.com/a/1190000022736837 1.邮箱 2.手机号...

  • js工具包(一些常见的js工具方法的封装)

    日期格式化 去除空格 url中取参数 获取、设置、删除cookie值 设置、获取、删除、清除sessionStor...

  • Namspacing-自用工具库

    自用工具库,主要用来收集一些常用的js工具,参考有几种方法: 改良版.统一输出,后期工具库庞大起来,能快速检查是否...

网友评论

      本文标题:js的一些工具方法

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