首頁 > 軟體

JavaScript正規表示式實現註冊資訊校驗功能

2022-05-30 14:01:50

Java和JavaScript正規表示式的對比 Java中也有正規表示式,預設情況下必須要精確匹配 ;而在JS中預設是模糊匹配,只要字串包含了正規表示式的內容就返回true

正規表示式匹配字串Java中匹配結果JavaScript中匹配結果
d{3}a123bfalsetrue
^d{3}123bfalsetrue
d{3}$a123falsetrue
^d{3}$123truetrue

註冊資訊校驗

需求

  1. 在JS中使用正規表示式進行驗證。
  2. 使用者名稱:只能由英文字母和數位組成,長度為4~16個字元,並且以英文字母開頭
  3. 密碼: 大小寫字母和數位6-20個字元
  4. 確認密碼:兩次密碼要相同
  5. 電子郵箱: 符合郵箱地址的格式 /^w+@w+(.[a-zA-Z]{2,3}){1,2}$/
  6. 手機號:/^1[34578]d{9}$/
  7. 生日:生日的年份在1900~2009之間,生日格式為1980-5-12或1988-05-04的形式,/^((19d{2})|(200d))-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2]d|3[0-1])$/

案例分析

  • 建立正規表示式
  • 得到文字方塊中輸入的值
  • 如果不匹配,在後面的span中顯示錯誤資訊,返回false
  • 如果匹配,在後面的span中顯示一個打勾圖片,返回true
  • 寫一個驗證表單中所有的項的方法,所有的方法都返回true,這個方法才返回true.
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>驗證註冊頁面</title>
    <style type= "text/css">
        body {
            margin: 0;
            padding: 0;
            font‐size: 12px;
            line‐height: 20px;
        }
        .main {
            width: 525px;
            margin‐left: auto;
            margin‐right: auto;
        }
        .hr_1 {
            font‐size: 14px;
            font‐weight: bold;
            color: #3275c3;
            height: 35px;
            border‐bottom‐width: 2px;
            border‐bottom‐style: solid;
            border‐bottom‐color: #3275c3;
            vertical‐align: bottom;
            padding‐left: 12px;
        }
        .left {
            text‐align: right;
            width: 80px;
            height: 25px;
            padding‐right: 5px;
        }
        .center {
            width: 280px;
        }
        .in {
            width: 130px;
            height: 16px;
            border: solid 1px #79abea;
        }
        .red {
            color: #cc0000;
            font‐weight: bold;
        }
        div {
            color: #F00;
        }
        </style>
    <script type="text/javascript">
        //驗證表單中所有的項
        function checkAll () {
//所有的方法都返回true,這個方法才返回true
            return checkUser() && checkMail();
        }
        //驗證使用者名稱
        function checkUser () {
//1. 建立正規表示式
            var reg = /^[a‐zA‐Z][a‐zA‐Z0‐9]{3,15}$/;
//2. 得到文字方塊中輸入的值
            var value = document.getElementById("user").value;
//3. 如果不匹配,在後面的span中顯示錯誤資訊,返回false
            if (reg.test(value)==false) {
                document.getElementById("userInfo").innerHTML = "使用者名稱不正確";
                return false;
            }
//4. 如果匹配,在後面的span中顯示一個打勾圖片,返回true
            else {
                document.getElementById("userInfo").innerHTML = "<img src='img/gou.png' width='15'/>";
                return true;
            }
        }
        //驗證郵箱
        function checkMail () {
            //1. 建立正規表示式
            var reg = /^w+@w+(.[a‐zA‐Z]{2,3}){1,2}$/;
//2. 得到文字方塊中輸入的值
            var value = document.getElementById("email").value;
//3. 如果不匹配,在後面的span中顯示錯誤資訊,返回false
            if (reg.test(value)==false) {
                document.getElementById("emailInfo").innerHTML = "郵箱格式不正確";
                return false;
            }
//4. 如果匹配,在後面的span中顯示一個打勾圖片,返回true
            else {
                document.getElementById("emailInfo").innerHTML = "<img src='img/gou.png' width='15'/>";
                return true;
            }
        }
    </script>
</head>
<body>
<form action="server" method="post" id="myform" onsubmit="return checkAll()">
    <table class="main" border="0" cellspacing="0" cellpadding="0">
        <tr>
            <td><img src="img/logo.jpg" alt="logo" /><img src="img/banner.jpg" alt="banner" /></td>
        </tr>
        <tr>
            <td class="hr_1">新使用者註冊</td>
        </tr>
        <tr>
            <td style="height:10px;"></td>
        </tr>
        <tr>
            <td>
                <table width="100%" border="0" cellspacing="0" cellpadding="0">
                    <tr>
                        <!‐‐ 長度為4~16個字元,並且以英文字母開頭 ‐‐>
                        <td class="left">使用者名稱:</td>
                        <td class="center">
                            <input id="user" name="user" type="text" class="in" onblur="checkUser()"/>
                            <span style="color: red" id="userInfo"></span>
                        </td>
                    </tr>
                    <tr>
                        <!‐‐ 不能為空, 輸入長度大於6個字元 ‐‐>
                        <td class="left">密碼:</td>
                        <td class="center">
                            <input id="pwd" name="pwd" type="password" class="in" />
                        </td>
                    </tr>
                    <tr>
                        <!‐‐ 不能為空, 與密碼相同 ‐‐>
                        <td class="left">確認密碼:</td>
                        <td class="center">
                            <input id="repwd" name="repwd" type="password" class="in"/>
                        </td>
                    </tr>
                    <tr>
                        <!‐‐ 不能為空, 郵箱格式要正確 ‐‐>
                        <td class="left">電子郵箱:</td>
                        <td class="center">
                            <input id="email" name="email" type="text" class="in" onblur="checkMail()"/>
                            <span id="emailInfo" style="color: red;"></span>
                        </td>
                    </tr>
                    <tr>
                        <!‐‐ 不能為空, 使用正規表示式自定義校驗規則,1開頭,11位全是數位 ‐‐>
                        <td class="left">手機號碼:</td>
                        <td class="center">
                            <input id="mobile" name="mobile" type="text" class="in"/>
                        </td>
                    </tr>
                    <tr>
                        <!‐‐ 不能為空, 要正確的日期格式 ‐‐>
                        <td class="left">生日:</td>
                        <td class="center">
                            <input id="birth" name="birth" type="text" class="in"/>
                        </td>
                    </tr>
                    <tr>
                        <td class="left">&nbsp;</td>
                        <td class="center">
                            <input name="" type="image" src="img/register.jpg" />
                        </td>
                    </tr>
                </table></td>
        </tr>
    </table>
</form>
</body>
</html>

到此這篇關於JavaScript正規表示式實現註冊資訊校驗的文章就介紹到這了,更多相關js正規表示式註冊資訊校驗內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com