1. 程式人生 > >js正則表單驗證(trim封裝)

js正則表單驗證(trim封裝)

筆記見本地js特效day05,


規律:

座機驗證:

匹配電話號碼:開頭3-4位(首位為0),後面7或8位。

(樞紐城市的座機以0開頭。人口多後8位,人口少後7位。)

姓名驗證:

只能是漢字,並且字數2-6個之間

[\u4e00-\u9fa5],unicode轉中文可以用unescape()列印轉換。

QQ驗證:

5到11位 開頭是不為0的數字。
手機驗證:

手機號11位數字,而且有號段限制 13[0-9] 14[57] 15[0-9] 17[1456789] 18[0-9]

郵箱驗證:

\w單詞字元包括:英文字母,數字,下劃線(不包括中劃線)姓名的中劃線可以出現0次或多次。

封裝trim方法:
在做表單驗證的時候,我們經常需要檢查輸入框是否為空,
一個簡單的做法是判斷value==”“;

但是如果使用者輸入了空格或者縮排等字元,
這個判斷就不起作用了。

PHP有一個很好的函式trim可以去除字串首尾的空白字元,雖然舊版原生js並沒有提供
這個函式,但是我們可以自定義一個函式。

替換掉開頭和結尾的空白符
return str.replace(/^\s+|\s+$/g,”“);

<body>
  <script>
  /*獲取輸入框*/
    var inpQQ =document.getElementById('inp1');
    var inpMobile =document.getElementById('inp2');
    var
inpEmail=document.getElementById('inp3'); var inpTel=document.getElementById('inp4'); var inpName=document.getElementById('inp5'); var inp6=document.getElementById('inp6'); //輸入框對應的規律 var regQQ=/^[1-9]\d{4,10}$/; var regMobile=/^(13[0-9]|14[57]|15[0-9]|17[1456789]|18[0-9])\d{8}$/; var
regEmail=/^\w+([-+.]\w+)*@\w+([-.]\w+)\.\w+$/;//*號出現0次或多次,中括號外的點號需要轉義。表示域名的只有減號和點號 var regTel=/^\d{2,3}-\d{7,8}$/; var regName=/^[\u4e00-\u9fa5]{2,6}$/; //繫結事件呼叫函式 check(inpQQ,regQQ); check(inpMobile,regMobile); check(inpEmail,regEmail); check(inpName,regName); check(inpTel,regTel); /*封裝函式:*/ function check(inp,regEx){/*check傳參(輸入物件,正則規則)*/ inp.onblur=function () { if (regEx.test(this.value)) { this.nextSibling.innerHTML="正確"; this.nextSibling.className="right"; }else{ this.nextSibling.innerHTML="錯誤"; this.nextSibling.className="wrong"; } } } inp6.onblur=function () { if (trim(this.value) === "") { this.nextSibling.innerHTML="輸入不能為空"; this.nextSibling.className="wrong"; }else{ this.nextSibling.innerHTML="正確"; this.nextSibling.className="right"; } }; function trim(str){ return str.replace(/^\s+|\s+$/g,"");//開啟全域性模式,替換完開頭的,接著替換結尾。 }
</script> </body>