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