欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

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

程序员文章站 2022-04-28 22:56:50
...
// 重复字符串
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