Jquery對文本框正則表達式驗證

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="Js/jquery-1.9.1.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        (function ($) {
            $.extend({
                /***
                *驗證是否爲 手機號碼 是返回true ,否則返回 false
                *參數 :$textId: 文本框id 
                */
                IsMobileTextId: function ($textId) {
                    var $obj = $("#" + $textId); //存儲當前文本框對象
                    var valStr = $obj.val(); //或者文本框的值
                    var result = $.IsMobileTextVal(valStr);
                    if (!result) { //判斷返回值 是否爲手機號
                        $obj.focus(); //獲得光標
                    }
                    return result;
                },
                /***
                *驗證是否爲 手機號碼 是返回true ,否則返回 false
                *參數 :valStr : 文本框的值
                */
                IsMobileTextVal: function (valStr) {
                    if (valStr && /^1[3|4|5|7|8]\d{9}$/.test(valStr)) { //判斷是否爲手機號            
                        return true;
                    } else {  //不是手機號
                        return false;
                    }
                },
                /***
                *驗證是否爲 座機 是返回true ,否則返回 false
                *參數 :$textId: 文本框id 
                */
                IsPhoneTextId: function ($textId) {
                    var $obj = $("#" + $textId); //存儲當前文本框對象
                    var valStr = $obj.val(); //或者文本框的值
                    var result = $.IsPhoneTextVal(valStr);
                    if (!result) { //判斷返回值 是否爲手機號
                        $obj.focus(); //獲得光標
                    }
                    return result;
                },
                /***
                *驗證是否爲 座機 是返回true ,否則返回 false
                *參數 :valStr : 文本框的值
                */
                IsPhoneTextVal: function (valStr) {
                    if (valStr && /^(\d{3,4}-?)?\d{7,9}$/.test(valStr)) { //判斷是否爲手機號            
                        return true;
                    } else {  //不是手機號
                        return false;
                    }
                },
                /***
                *驗證是否爲Email 是返回true ,否則返回 false
                *參數 :$textId: 文本框id 
                */
                IsEmailTextId: function ($textId) {
                    var $obj = $("#" + $textId); //存儲當前文本框對象
                    var valStr = $obj.val(); //或者文本框的值
                    var result = $.IsEmailTextVal(valStr);
                    if (!result) { //判斷返回值 是否爲正確
                        $obj.focus(); //獲得光標
                    }
                    return result;
                },
                /***
                *驗證是否爲Email 是返回true ,否則返回 false
                *參數 :valStr : 文本框的值
                */
                IsEmailTextVal: function (valStr) {
                    if (valStr && /^([a-zA-Z0-9_\.\-+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(valStr)) { //判斷是否爲正確           
                        return true;
                    } else {  //不正確
                        return false;
                    }
                },
                /***
                *驗證是否爲 正整數 是返回true ,否則返回 false
                *參數 :$textId: 文本框id 
                */
                IsPositiveIntTextId: function ($textId) {
                    var $obj = $("#" + $textId); //存儲當前文本框對象
                    var valStr = $obj.val(); //或者文本框的值
                    var result = $.IsPositiveIntTextVal(valStr);
                    if (!result) { //判斷返回值 是否爲正確
                        $obj.focus(); //獲得光標
                    }
                    return result;
                },
                /***
                *驗證是否爲 正整數 是返回true ,否則返回 false
                *參數 :valStr : 文本框的值
                */
                IsPositiveIntTextVal: function (valStr) {
                    if (valStr && /^[0-9]*[1-9][0-9]*$/.test(valStr)) { //判斷是否爲正確           
                        return true;
                    } else {  //不正確
                        return false;
                    }
                },
                /***
                *驗證是否爲 數字 是返回true ,否則返回 false
                *參數 :$textId: 文本框id 
                */
                IsNumberTextId: function ($textId) {
                    var $obj = $("#" + $textId); //存儲當前文本框對象
                    var valStr = $obj.val(); //或者文本框的值
                    var result = $.IsNumberTextVal(valStr);
                    if (!result) { //判斷返回值 是否爲正確
                        $obj.focus(); //獲得光標
                    }
                    return result;
                },
                /***
                *驗證是否爲 數字 是返回true ,否則返回 false
                *參數 :valStr : 文本框的值
                */
                IsNumberTextVal: function (valStr) {
                    if (valStr && /^[-\+]?\d+$/.test(valStr) || /^[-\+]?\d+(\.\d+)?$/.test(valStr)) { //判斷是否爲正確           
                        return true;
                    } else {  //不正確
                        return false;
                    }
                },
                /***
                *驗證是否爲 浮點數 是返回true ,否則返回 false
                *參數 :$textId: 文本框id 
                */
                IsFloatTextId: function ($textId) {
                    var $obj = $("#" + $textId); //存儲當前文本框對象
                    var valStr = $obj.val(); //或者文本框的值
                    var result = $.IsFloatTextVal(valStr);
                    if (!result) { //判斷返回值 是否爲正確
                        $obj.focus(); //獲得光標
                    }
                    return result;
                },
                /***
                *驗證是否爲 浮點數 是返回true ,否則返回 false
                *參數 :valStr : 文本框的值
                */
                IsFloatTextVal: function (valStr) {
                    if (valStr && /^[-\+]?\d+(\.\d+)?$/.test(valStr)) { //判斷是否爲正確           
                        return true;
                    } else {  //不正確
                        return false;
                    }
                },
                /***
                *驗證是否爲 郵政編碼驗證 是返回true ,否則返回 false
                *參數 :$textId: 文本框id 
                */
                IsZipCodeTextId: function ($textId) {
                    var $obj = $("#" + $textId); //存儲當前文本框對象
                    var valStr = $obj.val(); //或者文本框的值
                    var result = $.IsZipCodeTextVal(valStr);
                    if (!result) { //判斷返回值 是否爲正確
                        $obj.focus(); //獲得光標
                    }
                    return result;
                },
                /***
                *驗證是否爲 郵政編碼驗證 是返回true ,否則返回 false
                *參數 :valStr : 文本框的值
                */
                IsZipCodeTextVal: function (valStr) {
                    if (valStr && /^[0-9]{6}$/.test(valStr)) { //判斷是否爲正確           
                        return true;
                    } else {  //不正確
                        return false;
                    }
                },
                /***
                *驗證是否爲 身份證號碼驗證 是返回true ,否則返回 false
                *參數 :$textId: 文本框id 
                */
                IsIdCardNoTextId: function ($textId) {
                    var $obj = $("#" + $textId); //存儲當前文本框對象
                    var valStr = $obj.val(); //或者文本框的值
                    var result = $.IsIdCardNoTextVal(valStr);
                    if (!result) { //判斷返回值 是否爲正確
                        $obj.focus(); //獲得光標
                    }
                    return result;
                },
                /***
                *驗證是否爲 身份證號碼驗證 是返回true ,否則返回 false
                *參數 :valStr : 文本框的值
                */
                IsIdCardNoTextVal: function (valStr) {
                    var len = valStr.length, re;
                    if (len == 15)
                        re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{2})(\w)$/);
                    else if (len == 18)
                        re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\w)$/);
                    else {
                        //alert("輸入的數字位數不對。"); 
                        return false;
                    }
                    var a = valStr.match(re);
                    if (a != null) {
                        if (len == 15) {
                            var D = new Date("19" + a[3] + "/" + a[4] + "/" + a[5]);
                            var B = D.getYear() == a[3] && (D.getMonth() + 1) == a[4] && D.getDate() == a[5];
                        }
                        else {
                            var D = new Date(a[3] + "/" + a[4] + "/" + a[5]);
                            var B = D.getFullYear() == a[3] && (D.getMonth() + 1) == a[4] && D.getDate() == a[5];
                        }
                        if (!B) {
                            //alert("輸入的身份證號 "+ a[0] +" 裏出生日期不對。"); 
                            return false;
                        }
                    }
                    if (!re.test(valStr)) {
                        //alert("身份證最後一位只能是數字和字母。");
                        return false;
                    }
                    return true;
                },
                /***
                *驗證是否爲 IP地址驗證 是返回true ,否則返回 false
                *參數 :$textId: 文本框id 
                */
                IsIpAddressTextId: function ($textId) {
                    var $obj = $("#" + $textId); //存儲當前文本框對象
                    var valStr = $obj.val(); //或者文本框的值
                    var result = $.IsIpAddressTextVal(valStr);
                    if (!result) { //判斷返回值 是否爲正確
                        $obj.focus(); //獲得光標
                    }
                    return result;
                },
                /***
                *驗證是否爲 IP地址驗證 是返回true ,否則返回 false
                *參數 :valStr : 文本框的值
                */
                IsIpAddressTextVal: function (valStr) {
                    if (valStr && /^(([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.)(([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.){2}([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))$/.test(valStr)) { //判斷是否爲正確           
                        return true;
                    } else {  //不正確
                        return false;
                    }
                },
                /***
                *驗證是否爲 匹配密碼,只能是字母、數字和下劃線。 是返回true ,否則返回 false
                *參數 :$textId: 文本框id 
                */
                IsPasswordTextId: function ($textId) {
                    var $obj = $("#" + $textId); //存儲當前文本框對象
                    var valStr = $obj.val(); //或者文本框的值
                    var result = $.IsPasswordTextVal(valStr);
                    if (!result) { //判斷返回值 是否爲正確
                        $obj.focus(); //獲得光標
                    }
                    return result;
                },
                /***
                *驗證是否爲 匹配密碼,只能是字母、數字和下劃線。 是返回true ,否則返回 false
                *參數 :valStr : 文本框的值
                */
                IsPasswordTextVal: function (valStr) {
                    if (valStr && /^[\w]{6,12}$/.test(valStr)) { //判斷是否爲正確           
                        return true;
                    } else {  //不正確
                        return false;
                    }
                },
                /***
                *驗證是否爲 車牌號校驗  是返回true ,否則返回 false
                *參數 :$textId: 文本框id 
                */
                IsPlateNoTextId: function ($textId) {
                    var $obj = $("#" + $textId); //存儲當前文本框對象
                    var valStr = $obj.val(); //或者文本框的值
                    var result = $.IsPlateNoTextVal(valStr);
                    if (!result) { //判斷返回值 是否爲正確
                        $obj.focus(); //獲得光標
                    }
                    return result;
                },
                /***
                *驗證是否爲 車牌號校驗 是返回true ,否則返回 false
                *參數 :valStr : 文本框的值
                */
                IsPlateNoTextVal: function (valStr) {
                    if (valStr && /^[\u4e00-\u9fa5]{1}[A-Z]{1}[A-Z_0-9]{5}$/.test(valStr)) { //判斷是否爲正確           
                        return true;
                    } else {  //不正確
                        return false;
                    }
                },
                /***
                *驗證是否爲 QQ校驗 是返回true ,否則返回 false
                *參數 :$textId: 文本框id 
                */
                IsQQTextId: function ($textId) {
                    var $obj = $("#" + $textId); //存儲當前文本框對象
                    var valStr = $obj.val(); //或者文本框的值
                    var result = $.IsQQTextVal(valStr);
                    if (!result) { //判斷返回值 是否爲正確
                        $obj.focus(); //獲得光標
                    }
                    return result;
                },
                /***
                *驗證是否爲 QQ校驗 是返回true ,否則返回 false
                *參數 :valStr : 文本框的值
                */
                IsQQTextVal: function (valStr) {
                    if (valStr && /^[1-9]\d{4,12}$/.test(valStr)) { //判斷是否爲正確           
                        return true;
                    } else {  //不正確
                        return false;
                    }
                }

            });
        })(jQuery);

        $(function () {
            $("#Validate").click(function () {
                var result = "";
                //result= $.IsMobileTextId("moblie");
                //result = $.IsPhoneTextId("Phone");
                //result = $.IsEmailTextVal("Email");
                //result = $.IsPositiveIntTextId("int_1");
                //result = $.IsNumberTextId("Number");
                // result = $.IsFloatTextId("Float");
                // result = $.IsZipCodeTextId("ZipCode");
                //result = $.IsIdCardNoTextId("IdCardNo");
                //result = $.IsIpAddressTextId("IpAddress");
                result = $.IsPasswordTextId("Password");
                //result = $.IsPlateNoTextId("PlateNo");
                //result = $.IsQQTextId("QQ");
                alert(result);
            });
        });
    </script>
</head>
<body>
    手機號碼:<input id="moblie" type="text" /><br />
    座機:<input id="Phone" type="text" /><br />
    Email:<input id="Email" type="text" /><br />
    正整數:<input id="int_1" type="text" /><br />
    數字:<input id="Number" type="text" /><br />
    浮點數:<input id="Float" type="text" /><br />
    郵政編碼:<input id="ZipCode" type="text" /><br />
    省份證號碼驗證:<input id="IdCardNo" type="text" /><br />
    ip地址:<input id="IpAddress" type="text" /><br />
    匹配密碼,只能是字母、數字和下劃線:<input id="Password" type="text" /><br />
    車牌號校驗:<input id="PlateNo" type="text" /><br />
    QQ:<input id="QQ" type="text" /><br />
    <input type="submit" id="Validate" />
</body>
</html>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章