JavaScript中驗證Txt內容全為數位幾種方法

來源:互聯網
上載者:User

前言:

   對於用JS判斷Txt中是否為數字,在之前的一次驗證輸入年齡是否在0~100之間時,已經做了相應判斷。然而這次當想用同樣方法驗證輸入全為數字時,發現有一點問題,如下述:

 

初始做法:

    先設定環境,一個Txt文本輸入框,一個提交Btn,並觸發驗證文字框中是否全為數字?見代碼(JS片段)

<head runat="server">
    <title>驗證輸入Txt的內容全為數字</title>
    <script type ="text/javascript" language ="javascript" >
    // Description: 示範驗證Txt中內容是否全為數字

     // CopyRight: http://www.cnblogs.com/yangmingming

     // Notes: 應用一個Txt伺服器控制項,一個Btn控制項

   function CheckTxt()
    {
      var elementTxt=document.getElementById ("txtCheck").value;
      
      //應用parseInt函數,將字串(string類型)提取數字
      if(parseInt (elementTxt )>0)
      {
      alert("true");
      return true ;
      }
      else
      {
         alert("False");
         return false ;
      }
      
    }
    </script>
</head>

  當輸入全為數字時,返回True;然而輸入為類似‘123abc’時,卻出現意外效果,見:

 

 

 

 即這是parseInt函數,只是從中部分截取數字部分,這樣也就產生了如示的提示結果。怎麼辦呢?

 

 修改做法:

      可以用兩種方法分別實現,一種是用JS判斷;一種是用Regex判斷。分述之:

 i)JS判斷:

     用JS判斷,其中用到了string的方法應用(也是不甚熟悉的地方,呵呵)。先見代碼:

 <title>驗證輸入Txt的內容全為數字</title>
    <script type ="text/javascript" language ="javascript" >
    // Description: 示範驗證Txt中內容是否全為數字

     // CopyRight: http://www.cnblogs.com/yangmingming

     // Notes: 應用一個Txt伺服器控制項,一個Btn控制項

  function CheckTxt()
    {
      var elementTxt=document.getElementById ("txtCheck").value;
     if(CheckDigit(elementTxt ))
     {
     alert ("True");
     return true ;
     }
     else
     {
     alert ("False");
     return false ;
     } 
      
    }
    
    //輔助函數,驗證傳入函數的字串是否全為數字
    function CheckDigit(str)
    {
    var letters="0123456789";
    for(var i=0;i<str.length;i++)
    {
      if(letters.indexOf (str[i])==-1)
      return false;
    }
    return true ;
    }
    </script>
</head>

  這樣產生的調試結果,即為正確的了。示:

 

 

 

  即我們得到正確的結果了,呵呵~

 

ii)Regex判斷:

  關於Regex,前已概述,在此做一驗證,見代碼:

<head runat="server">
    <title>驗證輸入Txt的內容全為數字</title>
    <script type ="text/javascript" language ="javascript" >
    // Description: 示範驗證Txt中內容是否全為數字

     // CopyRight: http://www.cnblogs.com/yangmingming

     // Notes: 應用一個Txt伺服器控制項,一個Btn控制項

  function CheckTxt()
    {
    var regExp=/^\d+(\.\d+)?$/;
      var elementTxt=document.getElementById ("txtCheck").value;
     if(regExp .test (elementTxt ))
     {
     alert ("True");
     return true ;
     }
     else
     {
     alert ("False");
     return false ;
     } 
      
    }
    </script>
</head>

 

 通過Regex驗證,其結果同用JS的判斷。

 

  綜述之,通過對驗證是否為數字,進一步加深了對JS的理解,以後有機會會進一步鞏固之,呵呵~ 

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.