我有一个数值的文本框。例如,数字是23542.56。该数字在MySQL数据库中以双精度存储。asp.net c#格式化数字的正则表达式验证器
我将数字转换为十进制并将其格式化为字符串,而我从数据库中加载具有千位分隔符的值... 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>
的问题是验证不接受格式的数字,对于exampel 23.542,56。什么是让他只接受“0-9和”的正确方法,还要接受千位分隔符?
在此先感谢...
信息:要显示“28542.56”作为“23.542,56”是在德国的通用符号,这就是为什么我这样格式化数字的原因。
如果没有*精确的*输入字符串和预期的输出/行为,正则表达式问题很难回答。什么是正则表达式引擎的字符串类型? '23542.56'还是'23.542,56'?参见['^(?:\ d + | \ d {1,3}(?:[。,] \ d {3})*)(?:[,。] \ d +)?$'](http:/ /regexstorm.net/tester?p=%5e%28%3f%3a%5cd%2b%7c%5cd%7b1%2c3%7d%28%3f%3a%5b.%2c%5d%5cd%7b3%7d %29 * 29%28%%3F%3A%5B%2c中。%5D%5CD%2B%29%3F%5CR%3F%24&I = 23542.56%0D%0a23.542%2c56&O = M)。 –
非常感谢 - 这种模式确切地说我正在寻找 – user1814545