jquery - 插件依赖的公共方法

jQuery.extend({
    //===============================页面效果处理===============================
    //加水印事件
    eventfaultext: function(e){
        var id = e.data.id;
        var defnocolor = e.data.defnocolor;
        var text = e.data.text;
        if($("#" + id).val() == ""){
            $("#" + id).css("color",defnocolor);
            $("#" + id).val(text);
        }
    },
    
    //加水印
    //id: input的编号; deftext:默认的提示字符,(可选,默认为空间当前value); nocolor:用户无输入时显示子的颜色,(可选); color:用户输入后显示颜色,(可选)。
    adddefaultext: function(id, deftext, nocolor, color){
		var defnocolor = "#999"
        var defcolor = "#000";
        //没有输入时字体的颜色
        if(nocolor)
            defnocolor = nocolor;
        //有输入时字体的颜色
        if(color)
            defcolor = color;
        //没有输入时显示的内容
        var text = deftext ? deftext : $("#" + id).val();
        //初始颜色
        if($("#" + id).val() == deftext)
            $("#" + id).css("color",defnocolor);
        //处理事件
        $("#" + id).bind("focus", function(){
            if($("#" + id).val() == text){
                $("#" + id).css("color",defcolor);
                $("#" + id).val("");
            }
        });
        $("#" + id).unbind("blur", $.eventfaultext);
        $("#" + id).bind("blur", {id:id, defnocolor:defnocolor, text:text}, $.eventfaultext);
        if($("#" + id).val() == "" || $("#" + id).val() == text){
            $("#" + id).css("color",defnocolor);
            $("#" + id).val(text);
        }
    },
    
    //限制输入框字数
    //id:输入框id
    //count:限制字数
    //isdb:是否区别双字节
    limitwordscount: function(id, count, isdb){
        var t = true;
        if(isdb != undefined)
            t = isdb;
        var $m = $("#" + id);
        $m.bind("keyup", function(){
            var v = $m.val();
            if(t){
                if($.getstringslength(v) > count)
                    $m.val($.getsubString(v, count));
            }
            else{
                if(v.length > count)
                    $m.val(v.substr(0, count));
            }
                
        });
    },
    
    //限制输入类型
    inputcheck: function(o){
        var $m = $("#" + o.id);
        if(o.number){
            $m.bind("keyup", function(){
                var value = $m.val();;
                value = value.replace(/\D/g, "");
                $m.val(value);
            });
        }
    },

    //===============================字符串处理===============================
    //去除字符串value首尾的tag
    strimstring: function(value, tag) {
        if(!value || value == "")
            return "";
        var b = true;
        while(b) {
            if(value.substring(0, tag.length) == tag)
                value = value.substring(tag.length);
            else
                b = false;
        }
        b = true;
        while(b) {
            if(value.substring(value.length - tag.length) == tag)
                value = value.substring(0, value.length - tag.length);
            else
                b = false;
        }
        return value;
    },
    
    //获取字符串长度(双字节字符长度计2)
    getstringslength:function(strings){
        if(!strings) return 0;
        var len = strings.length;
        var i = 0;
        var count = 0;
        while(i < len){
            var t = strings.substr(i,1);
            if(t.charCodeAt()>=299){
                count += 2;
            }
            else{
                count += 1;
            }
            i++;
        }
        return count;
    },
    
    //截取字符串(双字节字符长度计2)
    getsubString:function(strings, count, add){
        if(count > jQuery.getstringslength(strings))
            return strings;
        var str = "";
        var i = 0;
        var len = 0;
        while(len < count){
            if(strings.substr(i,1).charCodeAt()>=299){
                len += 2;
            }
            else{
                len += 1;
            }
            str += strings.substr(i,1);
            i++;
        }
        if(add && str.length < strings.length)
            str += "...";
        return str;
    },
    //字符串sub是否在以spilt分割的字符串string中
    substrisin:function(string, sub, split){
        var list = string.split(split);
        return $.inarray(sub, list);
    },
    //===============================数组处理===============================
    //检查值是否在数组中
    //value,值
    //array,数组
    inarray:function(value, array){
        for(var i in array){
            if(array[i] == value)
                return true;
        }
        return false;
    },
    //删除数组中的某值,返回新的数组
    array_delvalue:function(array, value){
        var list = [];
        for(var i in array){
            var temp = array[i];
            if(temp != value)
                list.push(temp);
        }
        return list;
    },
    //删除数组中的某索引,返回新的数组保持原来数组的索引
    array_delindex:function(array, index){
        var list = [];
        for(var i in array){
            if(i != index)
                list[i] = array[i];
        }
        return list;
    },

    //===============================时间处理===============================
    //格式化日期
    dateformat:function(format,date){
        var date_and_time = new Date();
        var date_string = '';
        var regS = new RegExp("-","gi");
        if(date){
            if(typeof(date)=="string"){
                date_string = date.replace(regS,"/");
                date_and_time = new Date(Date.parse(date_string))
            }
            else{
                date_and_time = date;
            }
        }
        if(date_and_time.getFullYear() == 1970){
            format = format.replace(/d/gi, "0");
            format = format.replace(/j/gi, "00");
            format = format.replace(/m/gi, "0");
            format = format.replace(/n/gi, "00");
            format = format.replace(/Y/gi, "0000");
            format = format.replace(/y/gi, "00");
            format = format.replace(/H/gi, "00");
            format = format.replace(/G/gi, "0");
            format = format.replace(/i/gi, "00");
            format = format.replace(/s/gi, "00");
        }
        else{
            format = format.replace(/d/gi,date_and_time.getDate());
            var d = date_and_time.getDate();
            format = format.replace(/j/gi,d > 9 ? d : "0"+d);
            format = format.replace(/m/gi,date_and_time.getMonth()+1);
            var m = date_and_time.getMonth()+1;
            format = format.replace(/n/gi,m > 9 ? m : "0"+m);
            format = format.replace(/Y/gi,date_and_time.getFullYear());
            format = format.replace(/y/gi,date_and_time.getYear());
            format = format.replace(/H/gi,date_and_time.getHours() < 10 ? "0" + date_and_time.getHours() : date_and_time.getHours());
            format = format.replace(/G/gi,date_and_time.getHours());
            format = format.replace(/i/gi,date_and_time.getMinutes() < 10 ? "0" + date_and_time.getMinutes() : date_and_time.getMinutes());
            format = format.replace(/s/gi,date_and_time.getSeconds() < 10 ? "0" + date_and_time.getSeconds() : date_and_time.getSeconds());
        }
        return format;
    },
    
    //将时间格式字符串转换为日期对象
    getdate:function(datestr){
        if(typeof(datestr) != "string")
            return datestr;
        var date = new Date(Date.parse(datestr.toString().replace(/-/g, "/")));
        return date;
    },
    
    //时间差
    gettimedifference:function(start, end, t){
        start = jQuery.getdate(start);
        end = jQuery.getdate(end);
        var value = 0;
        if(t == "d"){
            value = (end - start)/(1000*60*60*24);
        }
        else if(t == "h"){
            value = (end - start)/(1000*60*60);
        }
        else if(t == "m"){
            value = (end - start)/(1000*60);
        }
        else if(t == "s"){
            value = (end - start)/(1000);
        }
        else{
            value = (end - start)/(1000*60*60*24);
        }
        return value;
    },
    
    //添加天
    addday:function(date, day){
        date = jQuery.getdate(date);
        var time = date.getTime() + day*24*60*60*1000;
        return new Date(time);
    },
    //添加小时
    addhours:function(date, hours){
        date = jQuery.getdate(date);
        var time = date.getTime() + parseInt(hours*60*60*1000);
        return new Date(time);
    },
    
    //是否小月
    isminmonth:function(month){
        return (month==4 || month==6 || month==9 || month==11);
    },
    
    //判断闰年
    ispinyear:function(year){
        if(year == '') return false;
        return (0 == year%4 && (year%100 != 0 || year % 4 == 0));
    },
    
    //获取月的周
    getmonthweek: function(year, month){
        var weeks = [];
        var temp = jQuery.getdate(year + "-" + month + "-01");
        var end = jQuery.getdate(year + "-" + month + "-" + $.getmonthday(year, month));
        var day = temp.getDay();
        day = day == 0 ? 7 : day;
        var start = jQuery.addday(temp, 7 - day);
        var i = 1;
        while(jQuery.gettimedifference(start, end) >= 0){
            temp = jQuery.addday(start, 6);
            weeks[i] = {start:jQuery.dateformat("Y-n-j 00:00:00",start), end:jQuery.dateformat("Y-n-j 23:59:59", temp)};
            start = jQuery.addday(temp, 1);
            i++;
        }
        return weeks;
    },
    
    //获取当前日期在本月第几周
    getdate_monthweek_index: function(date){
        date = jQuery.getdate(date);
        var weeks = jQuery.getmonthweek(date.getFullYear(), date.getMonth() + 1);
        if(jQuery.gettimedifference(date, weeks[1].start) > 0)
            return 0;
        
        for(var i in weeks){
            if(jQuery.gettimedifference(date, weeks[i].start) <= 0
                && jQuery.gettimedifference(date, weeks[i].end) >= 0){
                return parseInt(i);
            }
        }
    },
    //获取周几
    get_weekname:function(index){
        switch(index){
            case 0:
                return "周日";
            case 1:
                return "周一";
            case 2:
                return "周二";
            case 3:
                return "周三";
            case 4:
                return "周四";
            case 5:
                return "周五";
            case 6:
                return "周六";
        }
    },
    
    //返回当月第一天
    get_month_firstday: function(date){
        date = jQuery.getdate(date);
        return date.getFullYear() + "-" + (date.getMonth() + 1) + "-01";
    },
    
    //获取上个月份最后一天
    getupmonth: function(date){
        return jQuery.addday(jQuery.get_month_firstday(date), -1);
    },
    
    //返回当月最后一天
    getmonthlastday: function(date){
        date = jQuery.getdate(date);
        var day = jQuery.getmonthday(date.getFullYear(), date.getMonth() + 1);
        return date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + day;
    },
    
    //获取月份天数
    getmonthday: function(year, month){
        var day = 30;
        if(month == 2){
            if(jQuery.ispinyear(year)){
                day = 29;
            }
            else{
                day = 28;
            }
        }
        else if(jQuery.isminmonth(month)){
            day = 30;
        }
        else{
            day = 31;
        }
        return day;
    },
    
    //获取下个月份第一天
    getnextmonth: function(date){
        return jQuery.addday(jQuery.getmonthlastday(date), 1);
    },

    //获取时间差格式
    getdate_difference_format: function(difference){
        difference = Math.abs(difference);
        var d = Math.floor(difference);
        var h = difference - d;
        h = Math.ceil(h*24);
        
        if(h == 24){
            d ++;
            h = 0;
        }
        var format = "";
        if(d == 0)
            format = h + "小时";
        else if(h == 0)
            format = d + "天";
        else 
            format = d + "天" + h + "小时";
        return format;
    },
    //=============================== 数字处理 ===============================
    //获取0至num-1的随机数 
    getrandomnum:function(num){
        return Math.floor(Math.random()*num);
    }
}); 


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值