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

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

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

    javascript函數庫

    Posted on 2007-11-15 10:40 yukui 閱讀(158) 評論(0)  編輯  收藏 所屬分類: 技術

     

    /*

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

    校驗字符串是否為中文:               checkIsChinese(str)
    計算字符串的長度,一個漢字兩個字符:   realLength()
    校驗字符串是否符合自定義正則表達式:   checkMask(str,pat)
    得到文件的后綴名:                   getFilePostfix(oFile)  
    -------------- 函數檢索 --------------
    */

    /**
    * added by LxcJie 2004.6.25
    * 去除多余空格函數
    * 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 **************************************/
    /**
    *校驗字符串是否為空
    *返回值:
    *如果不為空,定義校驗通過,返回true
    *如果為空,校驗不通過,返回false               參考提示信息:輸入域不能為空!
    */
    function checkIsNotEmpty(str)
    {
        if(str.trim() == "")
            return false;
        else
            return true;
    }//~~~
    /*--------------------------------- Empty --------------------------------------*/
    /********************************** Integer *************************************/
    /**
    *校驗字符串是否為整型
    *返回值:
    *如果為空,定義校驗通過,      返回true
    *如果字串全部為數字,校驗通過,返回true
    *如果校驗不通過,              返回false     參考提示信息:輸入域必須為數字!
    */
    function checkIsInteger(str)
    {
        //如果為空,則通過校驗
        if(str == "")
            return true;
        if(/^(\\-?)(\\d+)$/.test(str))
            return true;
        else
            return false;
    }//~~~
    /**
    *校驗整型最小值
    *str:要校驗的串。  val:比較的值
    *
    *返回值:
    *如果為空,定義校驗通過,                返回true
    *如果滿足條件,大于等于給定值,校驗通過,返回true
    *如果小于給定值,                        返回false              參考提示信息:輸入域不能小于給定值!
    */
    function checkIntegerMinValue(str,val)
    {
        //如果為空,則通過校驗
        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;
    }//~~~
    /**
    *校驗整型最大值
    *str:要校驗的串。  val:比較的值
    *
    *返回值:
    *如果為空,定義校驗通過,                返回true
    *如果滿足條件,小于等于給定值,校驗通過,返回true
    *如果大于給定值,                        返回false       參考提示信息:輸入值不能大于給定值!
    */
    function checkIntegerMaxValue(str,val)
    {
        //如果為空,則通過校驗
        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;
    }//~~~
    /**
    *校驗整型是否為非負數
    *str:要校驗的串。
    *
    *返回值:
    *如果為空,定義校驗通過,返回true
    *如果非負數,            返回true
    *如果是負數,            返回false               參考提示信息:輸入值不能是負數!
    */
    function isNotNegativeInteger(str)
    {
        //如果為空,則通過校驗
        if(str == "")
            return true;
        if(checkIsInteger(str) == true)
        {
            if(parseInt(str,10) < 0)
                return false;
            else
                return true;
        }
        else
            return false;
    }//~~~
    /*--------------------------------- Integer --------------------------------------*/
    /********************************** Double ****************************************/
    /**
    *校驗字符串是否為浮點型
    *返回值:
    *如果為空,定義校驗通過,      返回true
    *如果字串為浮點型,校驗通過,  返回true
    *如果校驗不通過,              返回false     參考提示信息:輸入域不是合法的浮點數!
    */
    function checkIsDouble(str)
    {
        //如果為空,則通過校驗
        if(str == "")
            return true;
        //如果是整數,則校驗整數的有效性
        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;
        }
    }//~~~
    /**
    *校驗浮點型最小值
    *str:要校驗的串。  val:比較的值
    *
    *返回值:
    *如果為空,定義校驗通過,                返回true
    *如果滿足條件,大于等于給定值,校驗通過,返回true
    *如果小于給定值,                        返回false              參考提示信息:輸入域不能小于給定值!
    */
    function checkDoubleMinValue(str,val)
    {
        //如果為空,則通過校驗
        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;
    }//~~~
    /**
    *校驗浮點型最大值
    *str:要校驗的串。  val:比較的值
    *
    *返回值:
    *如果為空,定義校驗通過,                返回true
    *如果滿足條件,小于等于給定值,校驗通過,返回true
    *如果大于給定值,                        返回false       參考提示信息:輸入值不能大于給定值!
    */
    function checkDoubleMaxValue(str,val)
    {
        //如果為空,則通過校驗
        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;
    }//~~~
    /**
    *校驗浮點型是否為非負數
    *str:要校驗的串。
    *
    *返回值:
    *如果為空,定義校驗通過,返回true
    *如果非負數,            返回true
    *如果是負數,            返回false               參考提示信息:輸入值不能是負數!
    */
    function isNotNegativeDouble(str)
    {
        //如果為空,則通過校驗
        if(str == "")
            return true;
        if(checkIsDouble(str) == true)
        {
            if(parseFloat(str) < 0)
                return false;
            else
                return true;
        }
        else
            return false;
    }//~~~
    /*--------------------------------- Double ---------------------------------------*/
    /********************************** date ******************************************/
    /**
    *校驗字符串是否為日期型
    *返回值:
    *如果為空,定義校驗通過,           返回true
    *如果字串為日期型,校驗通過,       返回true
    *如果日期不合法,                   返回false    參考提示信息:輸入域的時間不合法!(yyyy-MM-dd)
    */
    function checkIsValidDate(str)
    {
        //如果為空,則通過校驗
        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;
    }//~~~
    /**
    *校驗兩個日期的先后
    *返回值:
    *如果其中有一個日期為空,校驗通過,          返回true
    *如果起始日期早于等于終止日期,校驗通過,   返回true
    *如果起始日期晚于終止日期,                 返回false    參考提示信息: 起始日期不能晚于結束日期。
    */
    function checkDateEarlier(strStart,strEnd)
    {
        if(checkIsValidDate(strStart) == false || checkIsValidDate(strEnd) == false)
            return false;
        //如果有一個輸入為空,則通過檢驗
        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 *****************************************/
    /**
    *校驗字符串是否為email型
    *返回值:
    *如果為空,定義校驗通過,           返回true
    *如果字串為email型,校驗通過,      返回true
    *如果email不合法,                  返回false    參考提示信息:Email的格式不正確!
    */
    function checkEmail(str)
    {
        //如果為空,則通過校驗
        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 ***************************************/
    /**
    *校驗字符串是否為中文
    *返回值:
    *如果為空,定義校驗通過,           返回true
    *如果字串為中文,校驗通過,         返回true
    *如果字串為非中文,             返回false    參考提示信息:必須為中文!
    */
    function checkIsChinese(str)
    {
        //如果值為空,通過校驗
        if (str == "")
            return true;
        var pattern = /^([\\u4E00-\\u9FA5]|[\\uFE30-\\uFFA0])*$/gi;
        if (pattern.test(str))
            return true;
        else
            return false;
    }//~~~
    /**
    * 計算字符串的長度,一個漢字兩個字符
    */
    String.prototype.realLength = function()
    {
      return this.replace(/[^\\x00-\\xff]/g,"**").length;
    }
    /*--------------------------------- chinese --------------------------------------*/
    /********************************** mask ***************************************/
    /**
    *校驗字符串是否符合自定義正則表達式
    *str 要校驗的字串  pat 自定義的正則表達式
    *返回值:
    *如果為空,定義校驗通過,           返回true
    *如果字串符合,校驗通過,           返回true
    *如果字串不符合,                   返回false    參考提示信息:必須滿足***模式
    */
    function checkMask(str,pat)
    {
        //如果值為空,通過校驗
        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控件對象
    */
    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 --------------------------------------*/


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


    如果采用傳統的方式,就要可能就要采用下面的方式了
    //清除左邊空格
    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;
    }


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


    一句就搞定了,
    可見正則表達式為我們節省了相當的編寫代碼量



    ! 移動手機號的校驗


    如果采用傳統的校驗方式至少就要完成下面三步的校驗,
    (1). 是否是數字
    (2).是否是11位
    (3).數字的第三位是否是5,6,7,8,9
    如果采用正則表達式校驗,只需以下代碼
    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("請輸入正確的移動手機號碼!");
    form.mobile.focus(); return false;
    }
    }
    return true;
    }


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


    ! URL的校驗,
    條件:必須以http://https:// 開頭, 端口號必須為在1-65535 之間, 以下代碼完成了合法性校驗


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


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


    var urlpatern2= /^https?:\/\/(([a-zA-Z0-9_-])+(\.)?)*(:\d+)?.+$/i;
    if(!urlpatern2.test(str))
    {
    alert(dispStr+"端口號必須為數字且應在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+"不合法,請檢查!");
    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+"端口號不能以0開頭!");
    obj.focus();
    return false;
    }


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

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





    javascript正則表達式檢驗
    /*********************************************************************************
    * EO_JSLib.js
    * javascript正則表達式檢驗
    **********************************************************************************/


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


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


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


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


    //校驗普通電話、傳真號碼:可以“+”開頭,除數字外,可含有“-”
    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
    }


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


    //校驗郵政編碼
    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
    }


    //校驗搜索關鍵字
    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

    主站蜘蛛池模板: 亚洲免费人成视频观看| 亚洲色婷婷一区二区三区| 亚洲妓女综合网99| 免费A级毛片在线播放| 亚洲最大的成网4438| 亚洲精品在线免费观看视频| 亚洲网站在线播放| 久久久久久精品免费看SSS| 亚洲国产美女精品久久久久| 国产91色综合久久免费| 国产成人精品日本亚洲直接| 免费网站看v片在线香蕉| 精品无码专区亚洲| 国产精品亚洲二区在线观看| 最近国语视频在线观看免费播放| 久久亚洲国产精品一区二区| 免费视频成人片在线观看| 亚洲AV无码乱码麻豆精品国产| 嫩草影院免费观看| 午夜免费国产体验区免费的| 亚洲国产精品一区二区第一页| 最近中文字幕大全中文字幕免费| 亚洲欧洲另类春色校园网站| 日本免费福利视频| 成在线人视频免费视频 | 麻豆一区二区免费播放网站| 亚洲乱理伦片在线观看中字 | 亚洲一级Av无码毛片久久精品| 中文字幕不卡高清免费| 亚洲高清无在码在线电影不卡| 成年女人看片免费视频播放器| 国产精品亚洲精品日韩动图| 亚洲精品~无码抽插| AV大片在线无码永久免费| 免费一级毛片在线播放放视频| 久久亚洲AV无码精品色午夜麻| 毛片免费全部免费观看| 精品国产免费人成网站| 亚洲成a人片在线看| 亚洲色欲久久久综合网东京热| 手机在线看永久av片免费|