JS正則表達式驗證數字,整數,email

 

說明:

元字符是正則表達式語法的一部分,有這些:

( [ { / ^ $ | ) ? * + .

任何時候使用他們都要對它們進行轉義,比如: var regStr=//?/;

但是:如果不用上面的“字面量語法”的時候就要進行雙重轉義,如:var regStr="//?";

在用JS中預定義的特殊字符時候,如:/t,/n;還有一組預定義字符類如:.,/d,/D,/w;更應該注意轉義。

我在複製代碼的時候選的是HTML,//就被過濾成/了,所以會出現差異,這也是前面爲什麼網友們發現驗證不對的地方。下面用文本粘貼:

正確的如下:

<html>
<head>
<title>正則表達式驗證示例</title>
<script language="JavaScript">
<!--
function checkdata(){//檢查函數
  //檢查是否數字
    var txt = document.forms[0].num.value;
    if(txt.search("^-?//d+(//.//d+)?$")!=0){
        alert("請輸入一個數字!");
        document.forms[0].num.select();
        return false;
    }
    //檢查是否整數
    txt = document.forms[0].int.value;
    if(txt.search("^-?//d+$")!=0){
        alert("請輸入一個整數!");
        document.forms[0].int.select();
        return false;
    }
    //檢查EMAIL是否合法
    txt = document.forms[0].email.value;
    if(txt.search("^(?://w+//.?)*//w+@(?://w+//.?)*//w+$")!=0){
        alert("請輸入正確的電子郵件!");
        document.forms[0].email.select();
        return false;
    }
    alert("檢查通過!");
    return true;
}
-->
</script>
</head>
<body>
<p>
<form action="" method="post" OnSubmit="return checkdata()">
<br>請輸入一個數字:<input type="text" name="num">
<br>請輸入一個整數:<input type="text" name="int">
<br>請輸入電子郵件:<input type="text" name="email">
<br><input type="submit" value="提交">
<form>
</body>
</html>

再補充一些:常用驗證:

<script language="JavaScript">
            <!-- //對付老式瀏覽器所用註釋
           
   function testisNum(s){
    var s =document.getElementById('num').value;
    if(isNum(s))
    {
     alert("是數字");
    }
    else
    {
     alert("請出入數字");
    }
   }
   
   
            //校驗用戶姓名:只能輸入3-20個以字母和數字開頭的字串
            function isTrueName(s)
            {
             var pattern=/^/w{3,20}$/;
             if(pattern.exec(s))
             {
              return true;
             }
             return false;
            }
            //校驗普通電話、傳真號碼:可以“+”開頭,除數字外,可含有“-”
            function isTel(s)
            {
             var pattern =/^[+]{0,1}(/d){1,3}[ ]?([-]?((/d)|[ ]){1,12})+$/;
             if(pattern.exec(s))
             {
              return true;
             }
             return false;
            }
            //校驗手機號碼:必須以數字開頭,除數字外,可含有“-”
            function isMobile(s)
            {
             //var patrn=/^[+]{0,1}(/d){1,3}[ ]?([-]?((/d)|[ ]){1,12})+$/;
             var patrn=/^((/(/d{0,3}/))|(/d{0,3}/-))?13|15/d{9}$/;
             if (!patrn.exec(s)){
               return false;
               }
              return true;
            }
            //校驗(國內)郵政編碼
            function isPostalCode(s)
            {
             var patrn=/^[0-9]{6}$/;
             //var patrn=/^[a-zA-Z0-9 ]{3,12}$/;
              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;
            }
            //校驗郵箱
            function isEmail(s)
            {
             var patrn=/^[a-zA-Z0-9_/-]{1,}@[a-zA-Z0-9_/-]{1,}/.[a-zA-Z0-9_/-.]{1,}$/;
              if (!patrn.exec(s)) {
               return false;
               }
              return true;
            }
            //校驗日期
            function isdate(s)
            {
             var patrn=/^((/d{2}(([02468][048])|([13579][26]))[/-///s]?((((0?[13578])|(1[02]))[/-///s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[/-///s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[/-///s]?((0?[1-9])|([1-2][0-9])))))|(/d{2}(([02468][1235679])|([13579][01345789]))[/-///s]?((((0?[13578])|(1[02]))[/-///s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[/-///s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[/-///s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(/s(((0?[0-9])|([1-2][0-3]))/:([0-5]?[0-9])((/s)|(/:([0-5]?[0-9])))))?$/;
              if (!patrn.exec(s)){
               return false;
               }
              return true;
            }
            
            //校驗貨幣格式
            function isCurrency(s)
            {
             var patrn=/^/d+(/./d+)?$/;
              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 isNum(s)
            {
             var pattern = /^/d+(/./d+)?$/;
             if(pattern.test(s))
             {
              return true;
             }
             return false;
            }
             //檢查是否整數
            function isInt(s)
            {
             var pattern = /^-?/d+$/;
             if(s.search(pattern)!=0)
             {
              return false;
             }
             return true;
            }
            -->
        </script>

下面是以前錯誤的複製

<html>
<head>
<title>正則表達式驗證示例</title>
<script language="JavaScript">
<!--
function checkdata() {//檢查函數
  //檢查是否數字
    var txt = document.forms[0].num.value;
    
if(txt.search("^/d+(/./d+)?$")!=0{
        alert(
"請輸入一個數字!");
        document.forms[
0].num.select();
        
return false;
    }

    
//檢查是否整數
    txt = document.forms[0].int.value;
    
if(txt.search("^-?/d+$")!=0{
        alert(
"請輸入一個整數!");
        document.forms[
0].int.select();
        
return false;
    }

    
//檢查EMAIL是否合法
    txt = document.forms[0].email.value;
    
if(txt.search("^[/w-]+(/.[/w-]+)*@[/w-]+(/.[/w-]+)+$")!=0{
        alert(
"請輸入正確的電子郵件!");
        document.forms[
0].email.select();
        
return false;
    }

    alert(
"檢查通過!");
    
return true;
}

-->
</script>
</head>
<body>
<p>
<form action="" method="post" OnSubmit="return checkdata()">
<br>請輸入一個數字:<input type="text" name="num">
<br>請輸入一個整數:<input type="text" name="int">
<br>請輸入電子郵件:<input type="text" name="email">
<br><input type="submit" value="提交">
<form>
</body>
</html>

  

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