常用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