asp.net - 可以让 CompareValidator 接受带逗号的数字吗?

标签 asp.net validation

我一直在对网页上的输入字段进行 Double 类型检查,但现在我需要允许逗号。这可以使用 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})?)" />

关于asp.net - 可以让 CompareValidator 接受带逗号的数字吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3613939/

相关文章:

c# - 在托管 Web 服务器中安排作业

c# - 有没有办法将 Html 插入到 gridview 行中?

php:验证 POST 的最佳方式

php - 在没有实际框架的情况下使用 Zend Framework 组件?

javascript - 如何在禁用字段上停止yup验证?

c# - MSBuild 未处理的异常 : The FileName property should not be a directory unless UseShellExecute is set

c# - 在 asp.net mvc 5 中创建管理页面

c# - 切换选项卡后日期选择器不起作用

javascript - 通过 JavaScript 进行验证

java - Spring 4 validator NoClassDefFoundError