2010-04-22 71 views
6

我已經創建了下面,我想將允許以下列形式輸入文本框和CompareValidator:驗證貨幣輸入的最佳方法是什麼?

  • 5.00
  • $ 5.00

可惜這不是允許與版本美元符號。如果您不允許美元符號,對貨幣進行類型檢查有什麼意義?有沒有辦法讓這個符號?

  <asp:TextBox ID="tb_CostShare" runat="server" Text='<%# Eval("CostShare", "{0:$0.00}")%>' CausesValidation="true" /> 
      <asp:CompareValidator ID="vld_CostShare" 
            runat="server" 
            ControlToValidate="tb_CostShare" 
            Operator="DataTypeCheck" 
            Type="Currency" 
            ValidationGroup="vld" 
            ErrorMessage="You must enter a dollar amount for 'Cost Share'." />  
+0

如果您使用'{0:c}'而不是? – Greg 2010-04-22 19:34:09

+3

貨幣驗證可能包括美元以外的貨幣... – 2010-04-22 19:37:38

+0

@奧斯汀 - 我不想驗證其他任何美元。 @Greg - 我如何使用{0:c}來驗證? – 2010-04-22 20:21:21

回答

8

CompareValidator不支持貨幣符號。你可以用$作爲輸入控件的前綴,或者使用正則表達式驗證器,this頁面有一個例子。

下面的模式將匹配您的示例(http://www.regexlib.com提供):

^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(.[0-9][0-9])?$ 
1

此外,你可以寫一個自定義驗證解析字符串,有或沒有$。但是你需要編寫一些Javascript來獲得客戶端驗證。

相關問題