jquery扩展方法(extend) 写法

前因:一直有积累一个util.js ,在不同时间段的质量成迭代状,变量名随着心情的变化不断变得不可读.决定在新项目中整理一下.如果当插件来写好像也没那么多功能,所以就extend吧

extend优点有很多,用java的思想就是有个包名

比如这样

$.myfunction.validate.isInt(str);

$.myfunction.validate.isFloat(str);

jquery extend的统一格式

(function($){
    $.extend({
       …… 
    });
    
})(jQuery);

 

我这里整理了一点项目中用到的,摘抄成这样

(function($) {
    $.extend({
        //验证工具
        validate : {
            // 整数
            isInt: function(str){
                var reg = /^(-|\+)?\d+$/;
                return reg.test(str);
            },
            // 小数
            isFloat: function(str){
                if (isInt(str))
                    return true;
                var reg = /^(-|\+)?\d+\.\d*$/;
                return reg.test(str);
            },
            // 中文
            isCn : function(str){
                var re1 = /[\u4e00-\u9fa5]/;
                return re1.test(str);
            },
            // 是否为空
            isEmpty: function(str){
                if (str != null && str != "") {
                    return false;
                }
                return true;
            }
        },
        //时间工具
        timeUtil : {
            /**
             * 日期 转换为 Unix时间戳
             * 
             * @param <int>  year 年
             * @param <int>   month 月
             * @param <int>   day 日
             * @param <int>   hour 时
             * @param <int>  minute 分
             * @param <int>  second 秒
             * @return <int> unix时间戳(秒)
             */
            DateToUnix : function(year, month, day, hour, minute, second) {
                var oDate = new Date(Date.UTC(parseInt(year), parseInt(month),
                        parseInt(day), parseInt(hour), parseInt(minute),
                        parseInt(second)));
                return (oDate.getTime() / 1000);
            },
            /**
             * 时间戳转换日期
             * 
             * @param <int>  unixTime 待时间戳(秒)
             * @param <bool> isFull 返回完整时间(Y-m-d 或者 Y-m-d H:i:s)
             * @param <int> timeZone 时区
             */
            UnixToDate : function(unixTime, isFull, timeZone) {
                if (typeof (timeZone) == 'number') {
                    unixTime = parseInt(unixTime) + parseInt(timeZone) * 60
                            * 60;
                }
                var time = new Date(unixTime * 1000);
                var ymdhis = "";
                ymdhis += time.getUTCFullYear() + "-";
                ymdhis += time.getUTCMonth() + "-";
                ymdhis += time.getUTCDate();
                if (isFull === true) {
                    ymdhis += " " + time.getUTCHours() + ":";
                    ymdhis += time.getUTCMinutes() + ":";
                    ymdhis += time.getUTCSeconds();
                }
                return ymdhis;
            },
            //东8区
            UnixToDefaultDate:function(unixTime){
                return $.timeUtil.UnixToDate(unixTime/1000,true,8);
            }
        },
        // cookie工具
        cookieUtil : {
            set : function(name, value) {
                var Days = 365; // 此 cookie 将被保存 365 天
                var exp = new Date(); // new Date("December 31, 9998");
                exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
                document.cookie = name + "=" + escape(value) + ";expires="
                        + exp.toGMTString();
            },
            get : function(name) {
                var arr = document.cookie.match(new RegExp("(^| )" + name
                        + "=([^;]*)(;|$)"));
                if (arr != null)
                    return unescape(arr[2]);
                return null;
            },
            del : function(name){
                var exp = new Date();
                exp.setTime(exp.getTime() - 1);
                var cval = $.cookieUtil.get(name);
                if (cval != null)
                    document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
            }
        }
    });
})(jQuery);

这里只是部分摘抄,其实可以分的更细,验证的 写个extend , 日期的,加载的,请求的 完全都可以用这种方式来实现,好处就是可以模块化,然后压缩个包就可以丢给大家用了,不用担心名称被占用什么的.所以,抽丝剥茧,整理下你的js吧

转载于:https://my.oschina.net/duplicatedcode/blog/138271

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值