JavaScript常用工具函数大全(2)

function checkKey(iKey) { if (iKey == 32 || iKey == 229) { return true; } /*空格和异常*/ if (iKey > 47 && iKey < 58) { return true; } /*数字*/ if (iKey > 64 && iKey < 91) { return true; } /*字母*/ if (iKey > 95 && iKey < 108) { return true; } /*数字键盘1*/ if (iKey > 108 && iKey < 112) { return true; } /*数字键盘2*/ if (iKey > 185 && iKey < 193) { return true; } /*符号1*/ if (iKey > 218 && iKey < 223) { return true; } /*符号2*/ return false; }

全角半角转换

//iCase: 0全到半,1半到全,其他不转化 function chgCase(sStr, iCase) { if ( typeof sStr != "string" || sStr.length <= 0 || !(iCase === 0 || iCase == 1) ) { return sStr; } var i, oRs = [], iCode; if (iCase) { /*半->全*/ for (i = 0; i < sStr.length; i += 1) { iCode = sStr.charCodeAt(i); if (iCode == 32) { iCode = 12288; } else if (iCode < 127) { iCode += 65248; } oRs.push(String.fromCharCode(iCode)); } } else { /*全->半*/ for (i = 0; i < sStr.length; i += 1) { iCode = sStr.charCodeAt(i); if (iCode == 12288) { iCode = 32; } else if (iCode > 65280 && iCode < 65375) { iCode -= 65248; } oRs.push(String.fromCharCode(iCode)); } } return oRs.join(""); }

版本对比

function compareVersion(v1, v2) { v1 = v1.split("."); v2 = v2.split("."); var len = Math.max(v1.length, v2.length); while (v1.length < len) { v1.push("0"); } while (v2.length < len) { v2.push("0"); } for (var i = 0; i < len; i++) { var num1 = parseInt(v1[i]); var num2 = parseInt(v2[i]); if (num1 > num2) { return 1; } else if (num1 < num2) { return -1; } } return 0; }

压缩CSS样式代码

function compressCss(s) { //压缩代码 s = s.replace(/\/\*(.|\n)*?\*\//g, ""); //删除注释 s = s.replace(/\s*([\{\}\:\;\,])\s*/g, "$1"); s = s.replace(/\,[\s\.\#\d]*\{/g, "{"); //容错处理 s = s.replace(/;\s*;/g, ";"); //清除连续分号 s = s.match(/^\s*(\S+(\s+\S+)*)\s*$/); //去掉首尾空白 return s == null ? "" : s[1]; }

获取当前路径

var currentPageUrl = ""; if (typeof this.href === "undefined") { currentPageUrl = document.location.toString().toLowerCase(); } else { currentPageUrl = this.href.toString().toLowerCase(); }

字符串长度截取

function cutstr(str, len) { var temp, icount = 0, patrn = /[^\x00-\xff]/, strre = ""; for (var i = 0; i < str.length; i++) { if (icount < len - 1) { temp = str.substr(i, 1); if (patrn.exec(temp) == null) { icount = icount + 1 } else { icount = icount + 2 } strre += temp } else { break; } } return strre + "..." }

时间日期格式转换

Date.prototype.format = function(formatStr) { var str = formatStr; var Week = ["日", "一", "二", "三", "四", "五", "六"]; str = str.replace(/yyyy|YYYY/, this.getFullYear()); str = str.replace( /yy|YY/, this.getYear() % 100 > 9 ? (this.getYear() % 100).toString() : "0" + (this.getYear() % 100) ); str = str.replace( /MM/, this.getMonth() + 1 > 9 ? (this.getMonth() + 1).toString() : "0" + (this.getMonth() + 1) ); str = str.replace(/M/g, this.getMonth() + 1); str = str.replace(/w|W/g, Week[this.getDay()]); str = str.replace( /dd|DD/, this.getDate() > 9 ? this.getDate().toString() : "0" + this.getDate() ); str = str.replace(/d|D/g, this.getDate()); str = str.replace( /hh|HH/, this.getHours() > 9 ? this.getHours().toString() : "0" + this.getHours() ); str = str.replace(/h|H/g, this.getHours()); str = str.replace( /mm/, this.getMinutes() > 9 ? this.getMinutes().toString() : "0" + this.getMinutes() ); str = str.replace(/m/g, this.getMinutes()); str = str.replace( /ss|SS/, this.getSeconds() > 9 ? this.getSeconds().toString() : "0" + this.getSeconds() ); str = str.replace(/s|S/g, this.getSeconds()); return str; }; // 或 Date.prototype.format = function(format) { var o = { "M+": this.getMonth() + 1, //month "d+": this.getDate(), //day "h+": this.getHours(), //hour "m+": this.getMinutes(), //minute "s+": this.getSeconds(), //second "q+": Math.floor((this.getMonth() + 3) / 3), //quarter S: this.getMilliseconds() //millisecond }; if (/(y+)/.test(format)) format = format.replace( RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length) ); for (var k in o) { if (new RegExp("(" + k + ")").test(format)) format = format.replace( RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length) ); } return format; }; alert(new Date().format("yyyy-MM-dd hh:mm:ss"));

跨浏览器删除事件

function delEvt(obj, evt, fn) { if (!obj) { return; } if (obj.addEventListener) { obj.addEventListener(evt, fn, false); } else if (oTarget.attachEvent) { obj.attachEvent("on" + evt, fn); } else { obj["on" + evt] = fn; } }

判断是否以某个字符串结束

String.prototype.endWith = function(s) { var d = this.length - s.length; return d >= 0 && this.lastIndexOf(s) == d; };

返回脚本内容

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/9d2c6c754e1a5e8eb79f9c1fcc37ce4b.html