zoukankan      html  css  js  c++  java
  • 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吧

  • 相关阅读:
    Clean Code读书笔记
    Junit 断言 assertThat Hamcrest匹配器
    SpringMVC 常用注解
    SpringMVC 流程 配置 接口
    ng-select ng-options ng-repeat的用法与区别
    javascript总结
    intellij安装 配置 创建项目
    git常用操作指令
    springmvc报错 org.springframework.web.servlet.DispatcherServlet
    linux笔记:RPM软件包管理-源码包管理
  • 原文地址:https://www.cnblogs.com/duplicatedcode/p/3141499.html
Copyright © 2011-2022 走看看