4
我一直在爲網頁上的輸入字段進行Double檢查,但現在我需要允許逗號。這可以使用CompareValidator完成,還是需要使用正則表達式驗證器?可能讓CompareValidator接受帶逗號的數字嗎?
我一直在爲網頁上的輸入字段進行Double檢查,但現在我需要允許逗號。這可以使用CompareValidator完成,還是需要使用正則表達式驗證器?可能讓CompareValidator接受帶逗號的數字嗎?
而不是使用Type="Double"
,請嘗試使用Type="Currency"
。它應該接受帶有和不帶逗號的值,但不會接受超過2個小數位。
下面是一個例子:
<asp:TextBox runat="server" ID="TextBox1" />
<asp:CompareValidator runat="server" ID="cValidator" ControlToValidate="TextBox1"
Type="Currency" Operator="DataTypeCheck" EnableClientScript="true"
ErrorMessage="Invalid format!" Display="Dynamic" />
否則一個RegularExpressionValidator
將工作,加上一個RequiredFieldValidator
校驗空條目(正則表達式驗證程序不阻止空條目)。你可以使用CustomValidator
,但是如果你不想僅憑服務器端驗證回發,你需要在JavaScript中提供一個客戶端驗證例程。此外,客戶端解決方案可能涉及正則表達式,它更多的工作來驗證整體,儘管不是太複雜。
這是一個例子使用RegularExpressionValidator
:
<asp:TextBox runat="server" ID="TextBox1" />
<asp:RequiredFieldValidator runat="server" ID="rfValidator" Display="Dynamic"
ControlToValidate="TextBox1" ErrorMessage="Required!" />
<asp:RegularExpressionValidator ID="reValidator" runat="server"
ControlToValidate="TextBox1"
EnableClientScript="True"
ErrorMessage="Invalid Format!"
Display="Dynamic"
ValidationExpression="(\d{1,3}(,\d{3})*\.\d{2})|(\d+(\.\d{2})?)" />
貨幣完全爲我工作!我只是希望貨幣足夠聰明來處理美元符號。 – John 2011-11-29 15:24:30