2010-04-22 11 views
6

io ho creato il TextBox e CompareValidator di sotto del quale ho pensato che avrebbe permesso di ingresso nelle seguenti forme:Il modo migliore per convalidare l'input di valuta?

  • 5,00
  • $ 5,00

Purtroppo non è permettendo la versione con la segno del dollaro in esso. A che serve fare un controllo del tipo contro la valuta se non si consente il segno del dollaro? C'è un modo per consentire questo simbolo?

  <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

Cosa succede se si utilizza '{0: c}'? – Greg

+3

Una convalida della valuta potrebbe includere valute diverse da USD ... –

+0

@ Austin - Non voglio convalidare nulla di diverso da USD. @Greg - Come utilizzerei {0: c} per convalidare? –

risposta

8

Il CompareValidator non supporta i simboli di valuta. Puoi prefixare il controllo di input con $ o usare un validatore di espressioni regolari, la pagina this ha un esempio.

Il seguente schema abbinerà i tuoi esempi (per gentile concessione di http://www.regexlib.com):

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

Inoltre, si potrebbe scrivere un validatore personalizzato per analizzare la stringa, con o senza $. Ma avresti bisogno di scrivere qualche Javascript per ottenere la convalida del lato client.

Problemi correlati