前因:一直有积累一个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吧