常用js函数整理

//获取地址栏参数
//item:参数名称;path(可选):地址
Request = {
    QueryString: function (item, path)
    {
        if (!path)
            path = location.search;
        var svalue = path.match(new RegExp("[\?\&]" + item + "=([^\&]*)(\&?)", "i"));
        return svalue ? svalue[1] : svalue;
    },
    //+---------------------------------------------------  
    //| 修改url里指定参数的参数值 
    //| requestUrl 地址(为空则使用当前地址)
    //| key 参数名称
    //| value 要设置的参数值
    //| reg 参数正则表达式
    //+---------------------------------------------------  
    SetQueryString: function (requestUrl, key, value, reg)
    {
        requestUrl || (requestUrl = window.location.search);
        if (!key)
        {
            return requestUrl;
        }
        key = "&" + key;

        if (!reg)
        {
            reg = new RegExp(key + "=" + "[A-Za-z0-9\-]*");
        }
        if (reg.test(requestUrl))
        {
            requestUrl = requestUrl.replace(reg, key + "=" + value);
        }
        else
        {
            requestUrl = requestUrl + key + "=" + value;
        }
        return requestUrl;
    }
}

//+---------------------------------------------------  
//| 打开新页面  
//| openUrl:地址; winWidth:宽度;winHeight:高度
//+---------------------------------------------------  
function C_Open(openUrl, winWidth, winHeight)
{
    var paraOpen = "";
    var left = 0, top = 0;
    if (winWidth != null && winWidth != "") { left = (window.screen.width - winWidth) / 2; paraOpen += ",width=" + winWidth; }
    if (winHeight != null && winHeight != "") { top = (window.screen.height - winHeight) / 2; paraOpen += ",height=" + winHeight };
    if (paraOpen == "") paraOpen = ",width=" + (screen.width - 15) + ",height=" + (screen.height - 65);
    paraOpen += ",top=" + top + ",left=" + left;
    var oWindow = window.open(openUrl, "", "center=yes,resizable=1,scrollbars=1" + paraOpen);
    oWindow.focus();
    return oWindow;
}

//+---------------------------------------------------  
//| 打开模态对话框  
//| openUrl:地址;para:参数 winWidth:宽度;winHeight:高度
//+---------------------------------------------------  
function ShowDialog(openUrl, para, winWidth, winHeight)
{
    var paraOpen = "";
    if (winWidth != null && winWidth != "")
    {
        paraOpen += "dialogWidth=" + winWidth + "px";
    }
    if (winHeight != null && winHeight != "")
    {
        paraOpen += ";dialogHeight=" + winHeight + "px";
    }
    if (paraOpen == "")
    {
        paraOpen = "dialogWidth=" + (screen.width - 15) + "px;dialogHeight=" + (screen.height - 65) + "px";
    }
    return window.showModalDialog(openUrl, para, "center=yes;status:0;scroll:1;help:0;" + paraOpen);
}

/**    
 * 对Date的扩展,将 Date 转化为指定格式的String    
 * 月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、周(E)、季度(q) 可以用 1-2 个占位符    
 * 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)    
 * eg:    
 * (new Date()).format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423    
 * (new Date()).format("yyyy-MM-dd E HH:mm:ss") ==> 2009-03-10 二 20:09:04    
 * (new Date()).format("yyyy-MM-dd EE hh:mm:ss") ==> 2009-03-10 周二 08:09:04    
 * (new Date()).format("yyyy-MM-dd EEE hh:mm:ss") ==> 2009-03-10 星期二 08:09:04    
 * (new Date()).format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18    
 */
Date.prototype.format = function (fmt)
{
    var o = {
        "M+": this.getMonth() + 1, //月份      
        "d+": this.getDate(), //日      
        "h+": this.getHours() % 12 == 0 ? 12 : this.getHours() % 12, //小时      
        "H+": this.getHours(), //小时      
        "m+": this.getMinutes(), //分      
        "s+": this.getSeconds(), //秒      
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度      
        "S": this.getMilliseconds() //毫秒      
    };
    var week = {
        "0": "/u65e5",
        "1": "/u4e00",
        "2": "/u4e8c",
        "3": "/u4e09",
        "4": "/u56db",
        "5": "/u4e94",
        "6": "/u516d"
    };
    if (/(y+)/.test(fmt))
    {
        fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    }
    if (/(E+)/.test(fmt))
    {
        fmt = fmt.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "/u661f/u671f" : "/u5468") : "") + week[this.getDay() + ""]);
    }
    for (var k in o)
    {
        if (new RegExp("(" + k + ")").test(fmt))
        {
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
        }
    }
    return fmt;
}


window.common = {
    //判断对象或字符串
    isEmpty: function (item)
    {
        return (typeof item == undefined || item == "")
    },
    //判断中文
    isCN: function (item)
    {
        return /[^\x00-\xff]/g.test(item);
    },
    //判断数字
    isNum: function (str)
    {
        return !isNaN( parseFloat(obj) ) && isFinite( obj );
    },
    //+---------------------------------------------------  
    //| 日期合法性验证(简单)  
    //| 格式为:YYYY-MM-DD
    //+---------------------------------------------------  
    isDate: function (DateStr)
    {
        return /^\d{4}-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2]\d|3[0-1])$/.test(DateStr);
    },
    //+---------------------------------------------------  
    //| 日期合法性验证  
    //| 使用示例  (1) isDate("2/29/2012", "MM/dd/YYYY", "/")
    //|          (2) isDate("2005-2-30","YYYY-MM-dd","-")
    //+---------------------------------------------------
    isDate: function (date, dateformat, separator)
    {

        if (date == null || date == "") return false;

        var date_part_index = this.datePartIndex(dateformat, separator);
        var date_array = date.split(separator);
        var yearstr = date_array[date_part_index.y];
        var monthstr = date_array[date_part_index.m];
        var daystr = date_array[date_part_index.d];

        if (isNaN(yearstr)) return false;
        if (isNaN(monthstr)) return false;
        if (isNaN(daystr)) return false;

        var year = parseInt(yearstr);
        var month = parseInt(monthstr) - 1;
        var day = parseInt(daystr);
        var date = new Date(year, month, day);
        var y = date.getFullYear();
        var m = date.getMonth();
        var d = date.getDate();
        if (y != year || m != month || d != day)
        {
            return false;
        }
        return true;
    },

    datePartIndex: function (dateformat, separator)
    {
        var partIndex = {};
        var part_array = dateformat.split(separator);
        for (var i = 0; i < part_array.length; i++)
        {
            switch (part_array[i])
            {
                case "YYYY":
                    partIndex.y = i;
                    break;
                case "MM":
                    partIndex.m = i;
                    break;
                case "dd":
                    partIndex.d = i;
                    break;
            }
        }
        return partIndex;
    },
    //+---------------------------------------------------        
    //| 获取字符串长度
    //| 说明:中文及全角字符返回2
    //+---------------------------------------------------
    getStrLength: function (str)
    {
        var cArr = str.match(/[^\x00-\xff]/ig);
        return str.length + (cArr == null ? 0 : cArr.length);
    },
    //通过时间戳获取唯一ID
    getID: function ()
    {
        return (new Date()).getTime();
    },
    //删除空格
    trim: function (text)
    {
        return text.replace(/(^\s+|\s+$)/g, '');;
    },
    //+---------------------------------------------------  
    //| 获取对象  
    //| 格式为:id(#id),className(.cn),tag(tag) 
    //+---------------------------------------------------      
    getObj: function (item)
    {
        var obj;
        if (item.indexOf('.') != -1)
        {
            obj = this.getElementsByClassName(item.replace(/^\.{1}/, ""));
        }
        else if (item.indexOf('#') != -1)
        {
            obj = document.getElementById(item.replace(/^#{1}/, ""));
        }
        else
        {
            obj = document.getElementsByTagName(item);
        }
        return obj;
    },
    hasClass: function (ele, cls)
    {
        return ele.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)'))
    },
    addClass: function (ele, cls)
    {
        if (!this.hasClass(ele, cls)) ele.className += " " + cls;
    },
    removeClass: function (ele, cls)
    {
        if (this.hasClass(ele, cls))
        {
            var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)');
            ele.className = ele.className.replace(reg, ' ');
        }
    },
    toggleClass: function (obj, cls)
    {
        if (hasClass(obj, cls)) removeClass(obj, cls);
        else addClass(obj, cls);
    },
    getElementsByClassName: function (className)
    {
        var children = document.getElementsByTagName('*');
        var cs = new Array();
        for (var j = 0; j < children.length; j++)
        {
            var child = children[j];
            var classNames = child.className.split(' ');
            for (var k = 0; k < classNames.length; k++)
            {
                if (classNames[k] == className)
                {
                    cs.push(child);
                    break;
                }
            }
        }
        return cs;
    },
    //生成GUID
    GUID: function ()
    {
        var newid = "";
        for (var i = 1; i <= 32; i++)
        {
            var n = Math.floor(Math.random() * 16.0).toString(16);
            newid += n;
            if ((i == 8) || (i == 12) || (i == 16) || (i == 20))
                newid += "-";
        }
        return newid;
    },
    formatDate: function (s,p)
    {
        return (new Date(s)).format(p);
    }
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值