2013-06-26 110 views
2

我有一個文本框,我需要讓用戶只輸入金額,這意味着只有數字和一個逗號文本框只允許數字和逗號

這裏是我

<asp:TextBox ID="txt_tutar" runat="server" onkeypress="this.value=this.value.replace(/\D/g,'')"></asp:TextBox> 

驗證碼上面只允許數字,它會刪除逗號。我如何更新讓用戶在文本框中輸入浮點數?

回答

4

使用正則表達式:

/[^\d,]/g 

如:

this.value=this.value.replace(/[^\d,]/g,'') 

當然,這並不是真正意義的字符串將是一個有效的數值;例如2,,0,1將被視爲罰款。你真的應該做使用decimal.TryParse或類似的東西

+0

這個工程,但我需要讓只有一個逗號 –

+0

我可以在客戶端? –

+2

您可能可以,但一般來說,您應該對任何用戶輸入使用服務器端驗證。不保證您的客戶將使用JavaScript或尊重客戶端的驗證。當然,惡意用戶總是可以通過原始HTTP請求發佈任何他們想要的東西,從而使客戶端驗證變得毫無意義。 –

0

在這裏,你還可以使用所需的字段校驗做的部份完整的服務器端驗證,使用javascript

更好的辦法去在性能客戶端,使用下面的腳本

function isValidNo(str) { 
      var inbadChars = "\t\n\r^&*=~`';<>?[]{}abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
      //debugger; 
      for (n = 0; n < str.length; n++) //filter for invalid chars 
      { 
       if (inbadChars.indexOf(str.charAt(n)) != -1) return false; 
      } 
      return true; 
     } 

推薦使用服務器端tryparse,因爲在某些瀏覽器上,有時腳本可能無法工作。

相關問題