【发布时间】:2017-06-05 11:38:56
【问题描述】:
我有一个带有数值的文本框。例如号码是 23542.56。该数字在 MySQL 数据库中存储为 double。
我将数字转换为十进制并将其格式化为字符串,同时使用 ...ToString("N") 从数据库中加载带有千位分隔符的值。
TextBox.Text = Convert.ToDecimal(mdr["Value"].ToString()).ToString("N");
我的正则表达式验证器只接受数字和逗号:
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="TextBox" ValidationExpression="^\d+(\,\d+$)?$" ValidationGroup="NumericValidate">Allowed Chars are: 0-9 und ,</asp:RegularExpressionValidator>
问题是验证器不接受格式化数字,例如 23.542,56。什么是让他只接受“0-9 and”但也接受千位分隔符的正确方法?
提前谢谢...
信息:将“28542.56”显示为“23.542,56”是德国的常用符号,这就是我以这种方式格式化数字的原因。
【问题讨论】:
-
如果没有 exact 输入字符串和预期的输出/行为,很难回答正则表达式问题。进入正则表达式引擎的字符串类型是什么?
23542.56还是23.542,56?见^(?:\d+|\d{1,3}(?:[.,]\d{3})*)(?:[,.]\d+)?$。 -
非常感谢 - 这个模式正是我想要的