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;
    }
}

 

posted @ 2013-05-22 10:08  人 在 旅 途  Views(195)  Comments(0)    收藏  举报