javascript常用东东整理
1、获取包含中文在内的字符串长度一个中文长度为二;
function getStrLength(str) { var cArr = str.match(/[^\x00-\xff]/ig); return str.length + (cArr == null ? 0 : cArr.length); }
2、无乱码字符串截取,如: var a="www.cnblogs.com";a.sub(3)//返回www
String.prototype.sub = function(n){ var r = /[^\x00-\xff]/g; if(this.replace(r, "mm").length <= n) return this; // n = n - 3; var m = Math.floor(n/2); for(var i=m; i<this.length; i++){ if(this.substr(0, i).replace(r, "mm").length>=n){ return this.substr(0, i) //+"..."; } } return this; };
3、性能测试函数,func调用的函数 times 调用的次数
function evalTime(func,times,obj,args) { times = times || 100000; //默认执行100000次 obj = obj || null; args = args || []; var old = new Date(); for (var i=0;i<times;i++){ func.apply(obj,args); } var etime = (new Date()) - old; if(window.console && console.info){ console.info(etime); } document.writeln(func +"<p>函数执行"+ times +"次消耗时间为:"+etime+"ms</p>"); return etime; };
4、jsonToString
function jsonToString(obj) { var THIS = this; switch(typeof(obj)){ case 'string': return '"' + obj.replace(/(["\\])/g, '\\$1') + '"'; case 'array': return '[' + obj.map(THIS.jsonToString).join(',') + ']'; case 'object': if(obj instanceof Array){ var strArr = []; var len = obj.length; for(var i=0; i<len; i++){ strArr.push(THIS.jsonToString(obj[i])); } return '[' + strArr.join(',') + ']'; }else if(obj==null){ return 'null'; }else{ var string = []; for (var property in obj) string.push(THIS.jsonToString(property) + ':' + THIS.jsonToString(obj[property])); return '{' + string.join(',') + '}'; } case 'number': return obj; case false: return obj; } }
5、检测手机号,加入了132,137等新开头号码
function checkMobile(phone) { var reg10086 = /^1(3[4-9]|5[012789]|8[78]|47)\d{8}$/; var reg10010 = /^1(3[0-2]|5[56]|8[56])\d{8}$/; var reg10000 = /^1(33|53|8[09])\d{8}$/; if (reg10086.test(phone))return true; if (reg10010.test(phone))return true; if (reg10000.test(phone))return true; return false; }
6、对电子邮件的验证
function checkMail(mail) { var temp = document.getElementById("text1"); var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/; if(myreg.test(mail)) return true; return false; }
7、获取http参数,如http://cnblogs.com?name=aspirant1314
GetQueryString(name)//返回aspirant1314
function GetQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)","i"); var r = window.location.search.substr(1).match(reg); if (r!=null) return decodeURIComponent(r[2]); return null; }
8、样式设置,ie没有做兼容,兼容方式element.currentStyle? element.currentStyle : window.getComputedStyle(element, null)).height;
function css() { /*设置或获取CSS样式 *设置:css(obj,{display:'block',color:'red'}); *获取:css(obj,'color'); */ var obj = arguments[0], options = arguments[1]; if(!!obj == false || typeof options == 'undefined') return null; if( typeof options == 'string') return document.defaultView.getComputedStyle(obj,null)[options]; if( typeof options == 'object') { for(var i in options) { obj.style[i] = options[i]; } } };
9、时间添加和移除
function addevent(obj,type,fun){ var obj=(obj == "object")?obj:document.getElementById(obj); if(obj.attachEvent){ return obj.addEventListener(type,fn); }else if(obj.addEventListener){ return obj.attachEvent("on"+type,fn); }else{ return false; } } function delEvent(obj,type,fn){ var obj=(obj == "object")?obj:document.getElementById(obj); if(obj.addEventListener){ return obj.removeEventListener(type,fn); }else if(obj.attachEvent){ return obj.detachEvent(type,fn); }else{ return false; } }

浙公网安备 33010602011771号