为什么不使用CompareValidator来验证值是否为数字?
<asp:TextBox ID="numberTextBox" runat="server" />
<asp:CompareValidator ID="validator" runat="server" ControlToValidate="numberTextBox" Operator="DataTypeCheck" Type="Double" ErrorMessage="Value must be a number" />
Run Code Online (Sandbox Code Playgroud)
^[-+]?[0-9]*\.?[0-9]*([eE][-+]?[0-9]+)?$
Run Code Online (Sandbox Code Playgroud)
将匹配以下(示例):
3.4
34.34
45345
-34
.55
-.45
-2.2
1.0e-10
45.
1.e308
Run Code Online (Sandbox Code Playgroud)
试试这个:
^\d*\.?\d+$
Run Code Online (Sandbox Code Playgroud)
编辑:弗雷德里克·莫尔克(FredrikMörk)提出了非常好的建议,使这个表达具有文化意识.像这样构建表达式字符串:
String regex = String.Format("^\d*\{0}?\d+$",
CultureInfo
.CurrentCulture
.NumberFormat
.CurrencyDecimalSeparator);
Run Code Online (Sandbox Code Playgroud)