您的位置:首页 > Web前端 > JavaScript

js 常用自定义公共函数

2014-01-15 13:09 513 查看
String.prototype.trim = function(){

    return this.replace(/(^\s*)|(\s*$)/g, "");

}

//检查是否是日期格式

function isDate(datestr){   

     var result = datestr.match(/((^((1[8-9]\d{2})|([2-9]\d{3}))(-)(10|12|0?[13578])(-)(3[01]|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))(-)(11|0?[469])(-)(30|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))(-)(0?2)(-)(2[0-8]|1[0-9]|0?[1-9])$)|(^([2468][048]00)(-)(0?2)(-)(29)$)|(^([3579][26]00)(-)(0?2)(-)(29)$)|(^([1][89][0][48])(-)(0?2)(-)(29)$)|(^([2-9][0-9][0][48])(-)(0?2)(-)(29)$)|(^([1][89][2468][048])(-)(0?2)(-)(29)$)|(^([2-9][0-9][2468][048])(-)(0?2)(-)(29)$)|(^([1][89][13579][26])(-)(0?2)(-)(29)$)|(^([2-9][0-9][13579][26])(-)(0?2)(-)(29)$))/);

     if(result==null){

         return "no";

     }

     return "yes";

}

//此方法以上面效果一致

function isDate2(datestr) {

    var result = datestr.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);

    if (result == null)

         return "no";

    var d = new Date(result[1], result[3] - 1, result[4]);

    if((d.getFullYear() == result[1] && (d.getMonth() + 1) == result[3] && d.getDate() == result[4])){

        return "yes";

    }

    return "no";

}

//判断输入的字符是否为中文    

function IsChinese(str){     

        if(str.length!=0){    

            reg=/^[\u0391-\uFFE5]+$/;    

            if(!reg.test(str)){    

               // alert("对不起,您输入的字符串类型格式不正确!");

                return "no";

            }    

        }

        return "yes";

}     

//判断是否为空

function isEmpty(str){

    if(str==null||typeof str=="undefined"||str.trim()==""){

        return true;

    }else{

        return false;

    }

}

//固定电话

function testTelephone(phone){

    var phone_reg = new RegExp(/^([+]{0,1}\d{3,4}|\d{3,4}-)?\d{7,8}$/);

    if(!phone_reg.test(phone)){

        return "no";

    }

    return "yes";

}
//折扣

function isDiscount(discount){

    var phone_reg = new RegExp(/^(0([\.]\d{1,2})|1|1.00|1.0)$/);

    if(!phone_reg.test(discount)){

        return "no";

    }

    return "yes";

}
//手机号码

function testMobile(mobile){

    var mobile_reg = new RegExp(/^0{0,1}1[0-9]{10}$/);

    if(!mobile_reg.test(mobile)){

        return "no";

    }

    return "yes";

}
//QQ号码从10000开始

function testQQ(qq){

    var qq_reg = new RegExp(/^[1-9][0-9]{4,}$/);

    if(!qq_reg.test(qq)){

        return "no";

    }

    return "yes";

}
//电子邮件

function testEmail(email){

    var email_reg = new RegExp(/^\w+([-+.]\w+)*@\w+([-.]\w+)*.\w+([-.]\w+)*$/);

    if(!email_reg.test(email)){

        return "no";

    }

    return "yes";

}

//不带符号的正整数

function testPlusDigit(digit){

    var plusDigit_reg = new RegExp(/^\d+$/);

    if(!plusDigit_reg.test(digit)){

        return "no";

    }

    return "yes";

}

//DOUBLE价格

function testPriceFormat(str){

    var priceFormatReg = new RegExp(/^\d+(.\d{1,2})?$/);

    if(!priceFormatReg.test(str)){

        return "no";

    }

    return "yes";

}

//身份证

function testIDCard(str){

    var IDCardReg = new RegExp(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/);

    if(!IDCardReg.test(str)){

        return "no";

    }

    return "yes";

}

//2012-06-19日期格式

function testDate(str){

    var dateReg = new RegExp(/(^\d{4}-[0,1][0-9]-[0-3][0-9]$)/);

    if(!dateReg.test(str)){

        return "no";

    }

    return "yes";

}

//浮点数精确运算(加法)

function accAdd(arg1,arg2){

    var r1,r2,m,n;

    try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}

    try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}

    m=Math.pow(10,Math.max(r1,r2));

    n=(r1>=r2)?r1:r2;  

    return ((arg1*m+arg2*m)/m).toFixed(n);

}

Number.prototype.add = function (arg){

    return accAdd(arg,this);

}

//浮点数精确运算(减法)

function accSub(arg1,arg2){

    return accAdd(arg1,-arg2);

}

Number.prototype.subtract = function (arg){

    return accSub(this,arg);

}

//浮点数精确运算(乘法)

function accMul(arg1,arg2)

{

    var m=0,s1=arg1.toString(),s2=arg2.toString();

    try{m+=s1.split(".")[1].length}catch(e){}

    try{m+=s2.split(".")[1].length}catch(e){}

    return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)

}

Number.prototype.mul = function (arg){

return accMul(arg, this);

}

//浮点数精确运算(除法)

function accDiv(arg1,arg2){

    var t1=0,t2=0,r1,r2;

    try{t1=arg1.toString().split(".")[1].length}catch(e){}

    try{t2=arg2.toString().split(".")[1].length}catch(e){}

    with(Math){

        r1=Number(arg1.toString().replace(".",""))

        r2=Number(arg2.toString().replace(".",""))

        return (r1/r2)*pow(10,t2-t1);

    }

}

Number.prototype.div = function (arg){

    return accDiv(this, arg);

}

//限制输入数字

function isNumber(e) {  

    if ($.browser.msie) {  

        if ( ((event.keyCode > 47) && (event.keyCode < 58)) ||  

              (event.keyCode == 8) ) {  

            return true;  

        } else {  

            return false;  

        }  

    } else {  

        if ( ((e.which > 47) && (e.which < 58)) ||  

              (e.which == 8) ) {  

            return true;  

        } else {  

            return false;  

        }  

    }  

}

//字符串长度截取

function cutstr(str, len) {

    var temp;

    var icount = 0;

    var patrn = /[^\x00-\xff]/;

    var 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 + "...";

}

//获取域名主机

function getHost(url) {

    var host = "null";

    if (typeof url == "undefined" || null == url) {

        url = window.location.href;

    }

    var regex = /^\w+\:\/\/([^\/]*).*/;

    var match = url.match(regex);

    if (typeof match != "undefined" && null != match) {

        host = match[1];

    }

    return host;

}

//判断某个值是否在所在范围

//rang=1 表示正整数[0,2147483647] 2表示float[0,3.4028235E38]

//return= 'empty' 表示输入为空,

function isRang(str,rang){

    if(typeof str == "number"){

        var num = Number(str);

        //判断是否在正整数范围

        if( rang == 1){  

            if(testPlusDigit(num)=="yes"){

                if(num>=0&&num<=2147483647){

                    return "is_int";

                }else{

                    return "is_not_int_rang";

                }

            }else{

                return "is_not_int";

            }

        }else if(rang == 2){

            if(testPriceFormat(num)=="yes"){

                if(num>=0&&num<=3.4028235E38){

                    return "is_float";

                }else{

                    return "is_not_float_rang";

                }

            }else{

a9d0

                return "is_not_float";

            }

        }else{

            return "rang_is_not_right";

        }

    }else{

        return "is_not_number";

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript js