<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    javascript函數(shù)庫(kù)

    Posted on 2007-11-15 10:40 yukui 閱讀(159) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 技術(shù)

     

    /*

    -------------- 函數(shù)檢索 --------------
    trim函數(shù):                         trim() lTrim() rTrim()
    校驗(yàn)字符串是否為空:                 checkIsNotEmpty(str)
    校驗(yàn)字符串是否為整型:               checkIsInteger(str)
    校驗(yàn)整型最小值:                    checkIntegerMinValue(str,val)
    校驗(yàn)整型最大值:                    checkIntegerMaxValue(str,val)
    校驗(yàn)整型是否為非負(fù)數(shù):               isNotNegativeInteger(str)
    校驗(yàn)字符串是否為浮點(diǎn)型:             checkIsDouble(str)
    校驗(yàn)浮點(diǎn)型最小值:                  checkDoubleMinValue(str,val)
    校驗(yàn)浮點(diǎn)型最大值:                  checkDoubleMaxValue(str,val)
    校驗(yàn)浮點(diǎn)型是否為非負(fù)數(shù):             isNotNegativeDouble(str)
    校驗(yàn)字符串是否為日期型:             checkIsValidDate(str)
    校驗(yàn)兩個(gè)日期的先后:                checkDateEarlier(strStart,strEnd)
    校驗(yàn)字符串是否為email型:           checkEmail(str)

    校驗(yàn)字符串是否為中文:               checkIsChinese(str)
    計(jì)算字符串的長(zhǎng)度,一個(gè)漢字兩個(gè)字符:   realLength()
    校驗(yàn)字符串是否符合自定義正則表達(dá)式:   checkMask(str,pat)
    得到文件的后綴名:                   getFilePostfix(oFile)  
    -------------- 函數(shù)檢索 --------------
    */

    /**
    * added by LxcJie 2004.6.25
    * 去除多余空格函數(shù)
    * trim:去除兩邊空格 lTrim:去除左空格 rTrim: 去除右空格
    * 用法:
    *     var str = "  hello ";
    *     str = str.trim();
    */
    String.prototype.trim = function()
    {
        return this.replace(/(^[\\s]*)|([\\s]*$)/g, "");
    }
    String.prototype.lTrim = function()
    {
        return this.replace(/(^[\\s]*)/g, "");
    }
    String.prototype.rTrim = function()
    {
        return this.replace(/([\\s]*$)/g, "");
    }
    /********************************** Empty **************************************/
    /**
    *校驗(yàn)字符串是否為空
    *返回值:
    *如果不為空,定義校驗(yàn)通過(guò),返回true
    *如果為空,校驗(yàn)不通過(guò),返回false               參考提示信息:輸入域不能為空!
    */
    function checkIsNotEmpty(str)
    {
        if(str.trim() == "")
            return false;
        else
            return true;
    }//~~~
    /*--------------------------------- Empty --------------------------------------*/
    /********************************** Integer *************************************/
    /**
    *校驗(yàn)字符串是否為整型
    *返回值:
    *如果為空,定義校驗(yàn)通過(guò),      返回true
    *如果字串全部為數(shù)字,校驗(yàn)通過(guò),返回true
    *如果校驗(yàn)不通過(guò),              返回false     參考提示信息:輸入域必須為數(shù)字!
    */
    function checkIsInteger(str)
    {
        //如果為空,則通過(guò)校驗(yàn)
        if(str == "")
            return true;
        if(/^(\\-?)(\\d+)$/.test(str))
            return true;
        else
            return false;
    }//~~~
    /**
    *校驗(yàn)整型最小值
    *str:要校驗(yàn)的串。  val:比較的值
    *
    *返回值:
    *如果為空,定義校驗(yàn)通過(guò),                返回true
    *如果滿(mǎn)足條件,大于等于給定值,校驗(yàn)通過(guò),返回true
    *如果小于給定值,                        返回false              參考提示信息:輸入域不能小于給定值!
    */
    function checkIntegerMinValue(str,val)
    {
        //如果為空,則通過(guò)校驗(yàn)
        if(str == "")
            return true;
        if(typeof(val) != "string")
            val = val + "";
        if(checkIsInteger(str) == true)
        {
            if(parseInt(str,10)>=parseInt(val,10))
                return true;
            else
                return false;
        }
        else
            return false;
    }//~~~
    /**
    *校驗(yàn)整型最大值
    *str:要校驗(yàn)的串。  val:比較的值
    *
    *返回值:
    *如果為空,定義校驗(yàn)通過(guò),                返回true
    *如果滿(mǎn)足條件,小于等于給定值,校驗(yàn)通過(guò),返回true
    *如果大于給定值,                        返回false       參考提示信息:輸入值不能大于給定值!
    */
    function checkIntegerMaxValue(str,val)
    {
        //如果為空,則通過(guò)校驗(yàn)
        if(str == "")
            return true;
        if(typeof(val) != "string")
            val = val + "";
        if(checkIsInteger(str) == true)
        {
            if(parseInt(str,10)<=parseInt(val,10))
                return true;
            else
                return false;
        }
        else
            return false;
    }//~~~
    /**
    *校驗(yàn)整型是否為非負(fù)數(shù)
    *str:要校驗(yàn)的串。
    *
    *返回值:
    *如果為空,定義校驗(yàn)通過(guò),返回true
    *如果非負(fù)數(shù),            返回true
    *如果是負(fù)數(shù),            返回false               參考提示信息:輸入值不能是負(fù)數(shù)!
    */
    function isNotNegativeInteger(str)
    {
        //如果為空,則通過(guò)校驗(yàn)
        if(str == "")
            return true;
        if(checkIsInteger(str) == true)
        {
            if(parseInt(str,10) < 0)
                return false;
            else
                return true;
        }
        else
            return false;
    }//~~~
    /*--------------------------------- Integer --------------------------------------*/
    /********************************** Double ****************************************/
    /**
    *校驗(yàn)字符串是否為浮點(diǎn)型
    *返回值:
    *如果為空,定義校驗(yàn)通過(guò),      返回true
    *如果字串為浮點(diǎn)型,校驗(yàn)通過(guò),  返回true
    *如果校驗(yàn)不通過(guò),              返回false     參考提示信息:輸入域不是合法的浮點(diǎn)數(shù)!
    */
    function checkIsDouble(str)
    {
        //如果為空,則通過(guò)校驗(yàn)
        if(str == "")
            return true;
        //如果是整數(shù),則校驗(yàn)整數(shù)的有效性
        if(str.indexOf(".") == -1)
        {
            if(checkIsInteger(str) == true)
                return true;
            else
                return false;
        }
        else
        {
            if(/^(\\-?)(\\d+)(.{1})(\\d+)$/g.test(str))
                return true;
            else
                return false;
        }
    }//~~~
    /**
    *校驗(yàn)浮點(diǎn)型最小值
    *str:要校驗(yàn)的串。  val:比較的值
    *
    *返回值:
    *如果為空,定義校驗(yàn)通過(guò),                返回true
    *如果滿(mǎn)足條件,大于等于給定值,校驗(yàn)通過(guò),返回true
    *如果小于給定值,                        返回false              參考提示信息:輸入域不能小于給定值!
    */
    function checkDoubleMinValue(str,val)
    {
        //如果為空,則通過(guò)校驗(yàn)
        if(str == "")
            return true;
        if(typeof(val) != "string")
            val = val + "";
        if(checkIsDouble(str) == true)
        {
            if(parseFloat(str)>=parseFloat(val))
                return true;
            else
                return false;
        }
        else
            return false;
    }//~~~
    /**
    *校驗(yàn)浮點(diǎn)型最大值
    *str:要校驗(yàn)的串。  val:比較的值
    *
    *返回值:
    *如果為空,定義校驗(yàn)通過(guò),                返回true
    *如果滿(mǎn)足條件,小于等于給定值,校驗(yàn)通過(guò),返回true
    *如果大于給定值,                        返回false       參考提示信息:輸入值不能大于給定值!
    */
    function checkDoubleMaxValue(str,val)
    {
        //如果為空,則通過(guò)校驗(yàn)
        if(str == "")
            return true;
        if(typeof(val) != "string")
            val = val + "";
        if(checkIsDouble(str) == true)
        {
            if(parseFloat(str)<=parseFloat(val))
                return true;
            else
                return false;
        }
        else
            return false;
    }//~~~
    /**
    *校驗(yàn)浮點(diǎn)型是否為非負(fù)數(shù)
    *str:要校驗(yàn)的串。
    *
    *返回值:
    *如果為空,定義校驗(yàn)通過(guò),返回true
    *如果非負(fù)數(shù),            返回true
    *如果是負(fù)數(shù),            返回false               參考提示信息:輸入值不能是負(fù)數(shù)!
    */
    function isNotNegativeDouble(str)
    {
        //如果為空,則通過(guò)校驗(yàn)
        if(str == "")
            return true;
        if(checkIsDouble(str) == true)
        {
            if(parseFloat(str) < 0)
                return false;
            else
                return true;
        }
        else
            return false;
    }//~~~
    /*--------------------------------- Double ---------------------------------------*/
    /********************************** date ******************************************/
    /**
    *校驗(yàn)字符串是否為日期型
    *返回值:
    *如果為空,定義校驗(yàn)通過(guò),           返回true
    *如果字串為日期型,校驗(yàn)通過(guò),       返回true
    *如果日期不合法,                   返回false    參考提示信息:輸入域的時(shí)間不合法!(yyyy-MM-dd)
    */
    function checkIsValidDate(str)
    {
        //如果為空,則通過(guò)校驗(yàn)
        if(str == "")
            return true;
        var pattern = /^((\\d{4})|(\\d{2}))-(\\d{1,2})-(\\d{1,2})$/g;
        if(!pattern.test(str))
            return false;
        var arrDate = str.split("-");
        if(parseInt(arrDate[0],10) < 100)
            arrDate[0] = 2000 + parseInt(arrDate[0],10) + "";
        var date =  new Date(arrDate[0],(parseInt(arrDate[1],10) -1)+"",arrDate[2]);
        if(date.getYear() == arrDate[0]
           && date.getMonth() == (parseInt(arrDate[1],10) -1)+""
           && date.getDate() == arrDate[2])
            return true;
        else
            return false;
    }//~~~
    /**
    *校驗(yàn)兩個(gè)日期的先后
    *返回值:
    *如果其中有一個(gè)日期為空,校驗(yàn)通過(guò),          返回true
    *如果起始日期早于等于終止日期,校驗(yàn)通過(guò),   返回true
    *如果起始日期晚于終止日期,                 返回false    參考提示信息: 起始日期不能晚于結(jié)束日期。
    */
    function checkDateEarlier(strStart,strEnd)
    {
        if(checkIsValidDate(strStart) == false || checkIsValidDate(strEnd) == false)
            return false;
        //如果有一個(gè)輸入為空,則通過(guò)檢驗(yàn)
        if (( strStart == "" ) || ( strEnd == "" ))
            return true;
        var arr1 = strStart.split("-");
        var arr2 = strEnd.split("-");
        var date1 = new Date(arr1[0],parseInt(arr1[1].replace(/^0/,""),10) - 1,arr1[2]);
        var date2 = new Date(arr2[0],parseInt(arr2[1].replace(/^0/,""),10) - 1,arr2[2]);
        if(arr1[1].length == 1)
            arr1[1] = "0" + arr1[1];
        if(arr1[2].length == 1)
            arr1[2] = "0" + arr1[2];
        if(arr2[1].length == 1)
            arr2[1] = "0" + arr2[1];
        if(arr2[2].length == 1)
            arr2[2]="0" + arr2[2];
        var d1 = arr1[0] + arr1[1] + arr1[2];
        var d2 = arr2[0] + arr2[1] + arr2[2];
        if(parseInt(d1,10) > parseInt(d2,10))
           return false;
        else
           return true;
    }//~~~
    /*--------------------------------- date -----------------------------------------*/
    /********************************** email *****************************************/
    /**
    *校驗(yàn)字符串是否為email型
    *返回值:
    *如果為空,定義校驗(yàn)通過(guò),           返回true
    *如果字串為email型,校驗(yàn)通過(guò),      返回true
    *如果email不合法,                  返回false    參考提示信息:Email的格式不正確!
    */
    function checkEmail(str)
    {
        //如果為空,則通過(guò)校驗(yàn)
        if(str == "")
            return true;
        if (str.charAt(0) == "." || str.charAt(0) == "@" || str.indexOf(\'@\', 0) == -1
            || str.indexOf(\'.\', 0) == -1 || str.lastIndexOf("@") == str.length-1 || str.lastIndexOf(".") == str.length-1)
            return false;
        else
            return true;
    }//~~~
    /*--------------------------------- email ----------------------------------------*/
    /********************************** chinese ***************************************/
    /**
    *校驗(yàn)字符串是否為中文
    *返回值:
    *如果為空,定義校驗(yàn)通過(guò),           返回true
    *如果字串為中文,校驗(yàn)通過(guò),         返回true
    *如果字串為非中文,             返回false    參考提示信息:必須為中文!
    */
    function checkIsChinese(str)
    {
        //如果值為空,通過(guò)校驗(yàn)
        if (str == "")
            return true;
        var pattern = /^([\\u4E00-\\u9FA5]|[\\uFE30-\\uFFA0])*$/gi;
        if (pattern.test(str))
            return true;
        else
            return false;
    }//~~~
    /**
    * 計(jì)算字符串的長(zhǎng)度,一個(gè)漢字兩個(gè)字符
    */
    String.prototype.realLength = function()
    {
      return this.replace(/[^\\x00-\\xff]/g,"**").length;
    }
    /*--------------------------------- chinese --------------------------------------*/
    /********************************** mask ***************************************/
    /**
    *校驗(yàn)字符串是否符合自定義正則表達(dá)式
    *str 要校驗(yàn)的字串  pat 自定義的正則表達(dá)式
    *返回值:
    *如果為空,定義校驗(yàn)通過(guò),           返回true
    *如果字串符合,校驗(yàn)通過(guò),           返回true
    *如果字串不符合,                   返回false    參考提示信息:必須滿(mǎn)足***模式
    */
    function checkMask(str,pat)
    {
        //如果值為空,通過(guò)校驗(yàn)
        if (str == "")
            return true;
        var pattern = new RegExp(pat,"gi")
        if (pattern.test(str))
            return true;
        else
            return false;
    }//~~~
    /*--------------------------------- mask --------------------------------------*/
    /********************************** file ***************************************/
    /**
    * added by LxcJie 2004.6.25
    * 得到文件的后綴名
    * oFile為file控件對(duì)象
    */
    function getFilePostfix(oFile)
    {
        if(oFile == null)
            return null;
        var pattern = /(.*)\\.(.*)$/gi;
        if(typeof(oFile) == "object")
        {
            if(oFile.value == null || oFile.value == "")
                return null;
            var arr = pattern.exec(oFile.value);
            return RegExp.$2;
        }
        else if(typeof(oFile) == "string")
        {
            var arr = pattern.exec(oFile);
            return RegExp.$2;
        }
        else
            return null;
    }//~~~
    /*--------------------------------- file --------------------------------------*/


    ! 去除字符串兩端空格的處理


    如果采用傳統(tǒng)的方式,就要可能就要采用下面的方式了
    //清除左邊空格
    function js_ltrim(deststr)
    {
    if(deststr==null)return "";
    var pos=0;
    var retStr=new String(deststr);
    if (retStr.lenght==0) return retStr;
    while (retStr.substring(pos,pos+1)==" ") pos++;
    retStr=retStr.substring(pos);
    return(retStr);
    }
    //清除右邊空格
    function js_rtrim(deststr)
    {
    if(deststr==null)return "";
    var retStr=new String(deststr);
    var pos=retStr.length;
    if (pos==0) return retStr;
    while (pos && retStr.substring(pos-1,pos)==" " ) pos--;
    retStr=retStr.substring(0,pos);
    return(retStr);
    }
    //清除左邊和右邊空格
    function js_trim(deststr)
    {
    if(deststr==null)return "";
    var retStr=new String(deststr);
    var pos=retStr.length;
    if (pos==0) return retStr;
    retStr=js_ltrim(retStr);
    retStr=js_rtrim(retStr);
    return retStr;
    }


    采用正則表達(dá)式,來(lái)去除兩邊的空格,只需以下代碼
    String.prototype.trim = function()
    {
    return this.replace(/(^\s*)|(\s*$)/g, "");
    }


    一句就搞定了,
    可見(jiàn)正則表達(dá)式為我們節(jié)省了相當(dāng)?shù)木帉?xiě)代碼量



    ! 移動(dòng)手機(jī)號(hào)的校驗(yàn)


    如果采用傳統(tǒng)的校驗(yàn)方式至少就要完成下面三步的校驗(yàn),
    (1). 是否是數(shù)字
    (2).是否是11位
    (3).數(shù)字的第三位是否是5,6,7,8,9
    如果采用正則表達(dá)式校驗(yàn),只需以下代碼
    function checkMobile1(form)
    {
    if (form.mobile.value > "")
    {
    var reg=/13[5,6,7,8,9]\d{8}/;
    if ( form.mobile.value.match(reg)== null)
    {
    alert("請(qǐng)輸入正確的移動(dòng)手機(jī)號(hào)碼!");
    form.mobile.focus(); return false;
    }
    }
    return true;
    }


    從上面的代碼可以看出校驗(yàn)移動(dòng)手機(jī)號(hào)只需定義一個(gè)var reg=/13[5,6,7,8,9]\d{8}/;模式匹配串就可以完成合法性校驗(yàn)了


    ! URL的校驗(yàn),
    條件:必須以http://https:// 開(kāi)頭, 端口號(hào)必須為在1-65535 之間, 以下代碼完成了合法性校驗(yàn)


    //obj:數(shù)據(jù)對(duì)象
    //dispStr :失敗提示內(nèi)容顯示字符串
    function checkUrlValid( obj, dispStr)
    {
    if(obj == null)
    {
    alert("傳入對(duì)象為空");
    return false;
    }
    var str = obj.value;


    var urlpatern0 = /^https?:\/\/.+$/i;
    if(!urlpatern0.test(str))
    {
    alert(dispStr+"不合法:必須以'http:\/\/'或'https:\/\/'開(kāi)頭!");
    obj.focus();
    return false;
    }


    var urlpatern2= /^https?:\/\/(([a-zA-Z0-9_-])+(\.)?)*(:\d+)?.+$/i;
    if(!urlpatern2.test(str))
    {
    alert(dispStr+"端口號(hào)必須為數(shù)字且應(yīng)在1-65535之間!");
    obj.focus();
    return false;
    }



    var urlpatern1 =/^https?:\/\/(([a-zA-Z0-9_-])+(\.)?)*(:\d+)?(\/((\.)?(\?)?=?&?[a-zA-Z0-9_-](\?)?)*)*$/i;


    if(!urlpatern1.test(str))
    {
    alert(dispStr+"不合法,請(qǐng)檢查!");
    obj.focus();
    return false;
    }


    var s = "0";
    var t =0;
    var re = new RegExp(":\\d+","ig");
    while((arr = re.exec(str))!=null)
    {
    s = str.substring(RegExp.index+1,RegExp.lastIndex);


    if(s.substring(0,1)=="0")
    {
    alert(dispStr+"端口號(hào)不能以0開(kāi)頭!");
    obj.focus();
    return false;
    }


    t = parseInt(s);
    if(t<1 || t >65535)
    {
    alert(dispStr+"端口號(hào)必須為數(shù)字且應(yīng)在1-65535之間!");
    obj.focus();
    return false;
    }
    }
    return true;
    }

    對(duì)url的校驗(yàn),看上去有很多的代碼,這是因?yàn)橐o予出錯(cuò)提示, 否則只需var urlpatern1 =/^https?:\/\/(([a-zA-Z0-9_-])+(\.)?)*(:\d+)?(\/((\.)?(\?)?=?&?[a-zA-Z0-9_-](\?)?)*)*$/i; 一句就可以校驗(yàn)出url合法性了





    javascript正則表達(dá)式檢驗(yàn)
    /*********************************************************************************
    * EO_JSLib.js
    * javascript正則表達(dá)式檢驗(yàn)
    **********************************************************************************/


    //校驗(yàn)是否全由數(shù)字組成
    function isDigit(s)
    {
    var patrn=/^[0-9]{1,20}$/;
    if (!patrn.exec(s)) return false
    return true
    }


    //校驗(yàn)登錄名:只能輸入5-20個(gè)以字母開(kāi)頭、可帶數(shù)字、“_”、“.”的字串
    function isRegisterUserName(s)
    {
    var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;
    if (!patrn.exec(s)) return false
    return true
    }


    //校驗(yàn)用戶(hù)姓名:只能輸入1-30個(gè)以字母開(kāi)頭的字串
    function isTrueName(s)
    {
    var patrn=/^[a-zA-Z]{1,30}$/;
    if (!patrn.exec(s)) return false
    return true
    }


    //校驗(yàn)密碼:只能輸入6-20個(gè)字母、數(shù)字、下劃線(xiàn)
    function isPasswd(s)
    {
    var patrn=/^(\w){6,20}$/;
    if (!patrn.exec(s)) return false
    return true
    }


    //校驗(yàn)普通電話(huà)、傳真號(hào)碼:可以“+”開(kāi)頭,除數(shù)字外,可含有“-”
    function isTel(s)
    {
    //var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+$/;
    var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
    if (!patrn.exec(s)) return false
    return true
    }


    //校驗(yàn)手機(jī)號(hào)碼:必須以數(shù)字開(kāi)頭,除數(shù)字外,可含有“-”
    function isMobil(s)
    {
    var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
    if (!patrn.exec(s)) return false
    return true
    }


    //校驗(yàn)郵政編碼
    function isPostalCode(s)
    {
    //var patrn=/^[a-zA-Z0-9]{3,12}$/;
    var patrn=/^[a-zA-Z0-9 ]{3,12}$/;
    if (!patrn.exec(s)) return false
    return true
    }


    //校驗(yàn)搜索關(guān)鍵字
    function isSearch(s)
    {
    var patrn=/^[^`~!@#$%^&*()+=|\\\][\]\{\}:;'\,.<>/?]{1}[^`~!@$%^&()+=|\\\][\]\{\}:;'\,.<>?]{0,19}$/;
    if (!patrn.exec(s)) return false
    return true
    }


    function isIP(s) //by zergling
    {
    var patrn=/^[0-9.]{1,20}$/;
    if (!patrn.exec(s)) return false
    return true
    }

    posts - 131, comments - 12, trackbacks - 0, articles - 32

    Copyright © yukui

    主站蜘蛛池模板: 国拍在线精品视频免费观看| 久久亚洲AV成人无码| 久久国产亚洲电影天堂| 巨胸喷奶水视频www网免费| 久久久久久久久久国产精品免费| 亚洲国产精品日韩av不卡在线| 亚洲成A人片777777| 中文字幕乱码免费视频| 亚洲va在线va天堂va手机| 亚洲国产三级在线观看| 麻豆一区二区免费播放网站| 免费人成在线观看视频高潮| 另类专区另类专区亚洲| 日韩亚洲产在线观看| 91麻豆精品国产自产在线观看亚洲| 成人性生活免费视频| 巨波霸乳在线永久免费视频 | aa级一级天堂片免费观看| 国产免费A∨在线播放| 久久久久久久久无码精品亚洲日韩| 亚洲日本久久一区二区va| 亚洲综合色视频在线观看| 国产精品二区三区免费播放心| 99久久这里只精品国产免费| 99热这里有免费国产精品| 99久久国产精品免费一区二区| 国产一级黄片儿免费看| 拍拍拍无挡免费视频网站| 亚洲国产精品日韩在线观看| 亚洲AV日韩精品久久久久| 亚洲成色在线综合网站| 亚洲AV永久无码精品成人| 亚洲嫩模在线观看| 亚洲视频精品在线| 亚洲区视频在线观看| 亚洲中文字幕无码一去台湾| 亚洲国产精品一区二区三区在线观看| 亚洲国产成AV人天堂无码| 亚洲91精品麻豆国产系列在线| 亚洲一区二区三区无码国产| 国产成人亚洲合集青青草原精品|