常用Javascript函数与原型功能收藏

高洛峰
高洛峰 原创
2016-10-12 13:16:29 764浏览
// 重复字符串
String.prototype.repeat = function(n) {
    return new Array(n+1).join(this);
}
 
// 替换全部
String.prototype.replaceAll = function(str1, str2) {
    return this.replace(new RegExp(str1, "gm"), str2);
}
 
// 清除空格
String.prototype.trim = function() {
    return this.replace(/^\s*(.*?)\s+$/, "$1");
}
 
// 计算数组中的最大值
Array.prototype.max = function() {
    return Math.max.apply({}, this);
}
 
// 计算数组中的最小值
Array.prototype.min = function() {
    return Math.min.apply({}, this);
}
 
// 复制数组
Array.prototype.copy = function() {
    return [].concat(this);
};
 
// 去除数组中指定元素,只能去除一个,如果想多个,之前先用unique处理
Array.prototype.remove = function(value){
    for (var i = 0, len = this.length; i .*?/ig, '');
}
 
// 检验URL链接是否有效
function getUrlState(url) {
    var xmlhttp = new ActiveXObject("microsoft.xmlhttp");
    xmlhttp.open("GET", url, false);
    try {
        xmlhttp.send();
    } catch(e) {
         
    } finally {
        var result = xmlhttp.responseText;
        if (result) {
            if (xmlhttp.status == 200) {
                return true;
            } else {
                return false;
            }
        } else {
            return false;
        }
    }
}
 
// 格式化CSS代码
function formatCss(str){
    str = str.replace(/\s*([\{\}\:\;\,])\s*/g, "$1");
    str = str.replace(/;\s*;/g, ";"); //清除连续分号
    str = str.replace(/\,[\s\.\#\d]*{/g, "{");
    str = str.replace(/([^\s])\{([^\s])/g, "$1 {\n\t$2");
    str = str.replace(/([^\s])\}([^\n]*)/g, "$1\n}\n$2");
    str = str.replace(/([^\s]);([^\s\}])/g, "$1;\n\t$2");
    return str;
}
 
// 压缩CSS代码
function compressCss (str) {
    str = str.replace(/\/\*(.|\n)*?\*\//g, "");       //删除注释
    str = str.replace(/\s*([\{\}\:\;\,])\s*/g, "$1");
    str = str.replace(/\,[\s\.\#\d]*\{/g, "{");       //容错处理
    str = str.replace(/;\s*;/g, ";");                 //清除连续分号
    str = str.match(/^\s*(\S+(\s+\S+)*)\s*$/);        //去掉首尾空白
    return (str == null) ? "" : s[1];
}
 
// getElementsByClassName
function getElementsByClassName(name, context) {
    var context = context || document;
    if (context.getElementsByClassName) {
        return context.getElementsByClassName(name);
    }
     
    var nodes = context.getElementsByTagName("*"), nodesLength = nodes.length, ret = [];
    for (var i = 0; i 47  && iKey 64  && iKey 95  && iKey 108 && iKey 185 && iKey 218 && iKey /g, ">");
    s = s.replace(/\'/g, "'");
    s = s.replace(/\"/g, "&qout;");
    return s;
}
 
// HTML还原
function htmlDecode(str) {
    var s = "";
    if (str.length == 0) return "";
    s = str.replace(/&/g, "&");
    s = s.replace(/, "/g, ">");
    s = s.replace(/'/g, "\'");
    s = s.replace(/&qout;/g, "\"");
    return s;
}
 
// 克隆
function clone(obj) {
    var ret;
    switch (typeof obj) {
        case 'undefined':
            break;
        case 'string':
            ret = obj + '';
            break;
        case 'number':
            ret = obj - 0;
            break;
        case 'boolean':
            ret = obj;
            break;
        case 'object':
            if (obj === null) {
                ret = null;
            } else {
                if (obj instanceof Array) {
                    ret = [];
                    for (var i = 0, len = obj.length; i  24 || time[3] > 60 || time[4] > 60) {
        return false
    }
    return true;
}
 
// 检测变量类型是否为日期格式
function checkDate(str) {
    var date = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
    if (date == null) {
        return false;
    }
     
    var d = new Date(r[1], r[3]-1, r[4]);
    return (d.getFullYear() == r[1] && (d.getMonth()+1) == r[3] && d.getDate() == r[4]);
}
 
// 检测变量是否为长日期格式
function checkDateTime(str) {
    var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
    var dt = str.match(reg);
    if (dt == null) {
        return false;
    }
     
    var d = new Date(dt[1], dt[3]-1, dt[4], dt[5], dt[6], dt[7]);
    return (d.getFullYear() == dt[1] && (d.getMonth()+1) == dt[3] && d.getDate() == dt[4] && d.getHours() == dt[5] && d.getMinutes() == dt[6] && d.getSeconds() == dt[7]);
}
 
// 检测变量是否为未定义
function isUndefined(val) {
    return typeof val === 'undefined';
}
 
// 检测变量是否为定义
function isDefined(val) {
    return typeof val !== 'undefined';
}
 
// 检测变量类型是否为对象
function isObject(val) {
  return val !== null && typeof val === 'object';
}
 
// 检测变量类型是否为空对象
function isBlankObject(val) {
  return val !== null && typeof val === 'object' && !Object.getPrototypeOf(val);
}
 
// 检测变量类型是否为字符串
function isString(val) {
    return typeof val === 'string';
}
 
// 检测变量类型是否为数字
function isNumber(val) {
    return typeof val === 'number';
}
 
// 检测变量类型是否为日期
function isDate(val) {
    return toString.call(val) === '[object Date]';
}
 
// 检测变量类型是否为函数
function isFunction(val) {
    return typeof val === 'function';
}
 
// 检测变量类型是否为正则表达式
function isRegExp(val) {
    return toString.call(val) === '[object RegExp]';
}
 
// 检测变量是否window窗体对象
function isWindow(obj) {
    return obj && obj.window === obj;
}
 
// 检测变量类型是否为布尔
function isBoolean(val) {
    return typeof val === 'boolean';
}
 
// 检测变量类型是否为文件对象
function isFile(obj) {
    return toString.call(obj) === '[object File]';
}
 
// 检测变量类型是否为表单对象
function isFormData(obj) {
    return toString.call(obj) === '[object FormData]';
}
 
// 检测变量类型是否为二进制对象
function isBlob(obj) {
    return toString.call(obj) === '[object Blob]';
}
 
// 转全角字符
function toDBC(str) {
    var result = "";
    var len = str.length;
    for (var i = 0; i = 0x0021 && code = 0xFF01 && code 全*/
        for (i = 0, len = str.length; i 半*/
        for (i = 0, len = str.length; i  65280 && code 


声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。