溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

JavaScript使用簡(jiǎn)單正則表達(dá)式的數(shù)據(jù)驗(yàn)證功能示例

發(fā)布時(shí)間:2020-09-07 19:47:35 來(lái)源:腳本之家 閱讀:142 作者:lx_3278@126 欄目:web開發(fā)

本文實(shí)例講述了JavaScript使用簡(jiǎn)單正則表達(dá)式的數(shù)據(jù)驗(yàn)證功能。分享給大家供大家參考,具體如下:

<!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>Register-reg</title>
  <script type="text/javascript" language="javascript">
    function checkName() {
      var nameElement = document.getElementById("name");
      //var regExp = /^(a-z)[^a-z\d_]/i;
      var regExp = /[a-zA-Z\d_]/i; // \w 匹配包括下劃線的任何單詞字符。等價(jià)于'[A-Za-z0-9_]'。 
      var regExp2 = /^[A-Za-z]/i;//匹配字符串開始位置為字母
      var resultElement = document.getElementById("resName");
      if (nameElement.value.match(regExp) && nameElement.value.match(regExp2) && nameElement.value.length >= 6) {
        //匹配成功
        //會(huì)員名為字母、數(shù)字、下劃線組成,并且字母為開頭,長(zhǎng)度不小于6
        resultElement.innerHTML = "";
        return true;
      }
      else {
        resultElement.innerHTML = "會(huì)員名為字母、數(shù)字、下劃線組成,并且字母為開頭,長(zhǎng)度不小于6!";
        return false;
      }
    }
    function checkPwd() {
      var pwdElement = document.getElementById("pwd");
      var regExp = /[a-zA-Z\d_]/i; // \w 匹配包括下劃線的任何單詞字符。等價(jià)于'[A-Za-z0-9_]'。 
      var regExp2 = /[a-zA-Z]/i; //匹配字母
      var regExp3 = /\d/i; //匹配數(shù)字
      var resultElement = document.getElementById("resPwd");
      if (pwdElement.value.match(regExp) && pwdElement.value.match(regExp2) && pwdElement.value.match(regExp3) && pwdElement.value.length >= 6) {
        //匹配成功
        //密碼為字母、數(shù)字、下劃線組成,并且必須有字母、數(shù)字,長(zhǎng)度不小于6
        resultElement.innerHTML = "";
        return true;
      }
      else {
        resultElement.innerHTML = "密碼為字母、數(shù)字、下劃線組成,并且必須有字母、數(shù)字,長(zhǎng)度不小于6!";
        return false;
      }
    }
    function checkPwd2() {
      var pwdElement = document.getElementById("pwd");
      var pwd2Element = document.getElementById("pwd2");
      var resultElement = document.getElementById("resPwd2");
      if (pwdElement.value == pwd2Element.value) {
        //重輸密碼與之前密碼完全匹配
        resultElement.innerHTML = "";
        return true;
      }
      else {
        resultElement.innerHTML = "密碼不一致!";
        return false;
      }
    }
    function checkGentle() {
      var gentleElement = document.getElementById("gentle");
      var resultElement = document.getElementById("resGentle");
      if ((gentleElement.value == "男" || gentleElement.value == "女") || (gentleElement.value == "m" || gentleElement.value == "f") || (gentleElement.value == "male" || gentleElement.value == "famale")) {
        //性別判斷是否在:男、女、male、famale、m、f 之內(nèi)
        resultElement.innerHTML = "";
        return true;
      }
      else {
        resultElement.innerHTML = "性別判斷是否在:男、女、male、famale、m、f 之內(nèi)!";
        return false;
      }
    }
    function checkAge() {
      var ageElement = document.getElementById("age");
      var resultElement = document.getElementById("resAge");
      if (parseInt(ageElement.value) > 0 && parseInt(ageElement.value) <= 150) {
        //如果年齡在0~150之間
        resultElement.innerHTML = "";
        return true;
      }
      else {
        resultElement.innerHTML = "年齡在0~150之間!";
        return false;
      }
    }
    function checkMail() {
      var mailElement = document.getElementById("mail");
      var regExp = /[^a-z0-9_]/gi; // 匹配非字母、數(shù)字、下劃線的字符
      var regExp2 = /[a-z]/gi; // 匹配字母
      var resultElement = document.getElementById("resMail");
      if (!mailElement.value.match(regExp)) {//如果出現(xiàn)非字母、數(shù)字、下劃線的字符
        resultElement.innerHTML = "郵箱地址不正確!";
        return false;
      }
      else {
        if (mailElement.value.indexOf(".") - mailElement.value.indexOf("@") >= 2) {
          resultElement.innerHTML = "";
          return true;
        }
        else {
          resultElement.innerHTML = "郵箱地址不正確!";
          return false;
        }
      }
    }
    function checkTel() {
      var telElement = document.getElementById("tel");
      var regExp = /\d{7,12}/g;// 匹配7~12位電話數(shù)字
      var regExp2 = /[^0-9]/g; // 是否有數(shù)字以外的字符
      var resultElement = document.getElementById("resTel");
      if (telElement.value.match(regExp) && telElement.value.length <= 12) {
        if (telElement.value.match(regExp2)) {
          resultElement.innerHTML = "電話號(hào)碼為純數(shù)字,且位于7~12位之間!";
          return false;
        }
        else {
          resultElement.innerHTML = "";
          return true;
        }
      }
      else {
        resultElement.innerHTML = "電話號(hào)碼為純數(shù)字,且位于7~12位之間!"; //!telElement.value.match(regExp2) && 
        return false;
      }
    }
    function checkAll() {
      if (checkName() && checkPwd() && checkPwd2() && checkGentle() && checkAge() && checkMail() && checkTel()) {
        alert("恭喜,填寫的信息正確!");
      }
      else {
        alert("錯(cuò)誤,請(qǐng)確認(rèn)填寫的信息是否正確!");
      }
    }
    //當(dāng)窗體加載完成時(shí)執(zhí)行
    window.onload = function () {
      var inputElements = document.getElementsByTagName("input");
      inputElements[0].onblur = function () {
        checkName();
      }
      inputElements[1].onblur = function () {
        checkPwd();
      }
      inputElements[2].onblur = function () {
        checkPwd2();
      }
      inputElements[3].onblur = function () {
        checkGentle();
      }
      inputElements[4].onblur = function () {
        checkAge();
      }
      inputElements[5].onblur = function () {
        checkMail();
      }
      inputElements[6].onblur = function () {
        checkTel();
      }
      inputElements[7].onclick = function () {
        checkAll();
      }
    }
  </script>
  <style type="text/css">
    body{ font-size:16px;
       font-weight:600;
       font-family:微軟雅黑;
       line-height:30px;
    }
    thead{ text-align:center;
    }
    input{ width:150px;
    }
    input[type=button]{ height:38px;
              font-size:20px;
              font-weight:600;
    }
    ul{ border:1px solid #c3c3c3;
    }
    li{ list-style-type:square;
    }
  </style>
</head>
<body>
  <form action="" method="post">
    <table>
      <thead><tr><td colspan="2"><h3>表單驗(yàn)證</h3></td></tr></thead>
      <tr><td>會(huì)員名:</td><td><input type="text" id="name" /></td><td id="resName"></td></tr>
      <tr><td>密碼:</td><td><input type="password" id="pwd" /></td><td id="resPwd"></td></tr>
      <tr><td>重復(fù)密碼:</td><td><input type="password" id="pwd2" /></td><td id="resPwd2"></td></tr>
      <tr><td>性別:</td><td><input type="text" id="gentle" /></td><td id="resGentle"></td></tr>
      <tr><td>年齡:</td><td><input type="text" id="age" /></td><td id="resAge"></td></tr>
      <tr><td>電子郵件:</td><td><input type="text" id="mail" /></td><td id="resMail"></td></tr>
      <tr><td>聯(lián)系號(hào)碼:</td><td><input type="text" id="tel" /></td><td id="resTel"></td></tr>
      <tr><td></td><td><input type="button" value="注冊(cè)" id="checkAll" /></td></tr>
    </table>
  </form>
  <ul>
    <li>會(huì)員名為字母、數(shù)字、下劃線組成,并且字母為開頭,長(zhǎng)度不小于6</li>
    <li>密碼為字母、數(shù)字、下劃線組成,并且必須有字母、數(shù)字,長(zhǎng)度不小于6</li>
    <li>性別判斷是否在:男、女、male、famale、m、f 之內(nèi)</li>
    <li>年齡在0~150之間</li>
    <li>郵箱地址</li>
    <li>電話號(hào)碼為純數(shù)字,且位于7~12位之間!</li>
  </ul>
</body>
</html>

PS:這里再為大家提供2款非常方便的正則表達(dá)式工具供大家參考使用:

JavaScript正則表達(dá)式在線測(cè)試工具:
http://tools.jb51.net/regex/javascript

正則表達(dá)式在線生成工具:
http://tools.jb51.net/regex/create_reg

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript正則表達(dá)式技巧大全》、《JavaScript替換操作技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript中json操作技巧總結(jié)》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI