正则表达式,用于验证文本框,我可以在asp.net中输入整数/浮点值
答案 0 :(得分:7)
为什么不使用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" />
答案 1 :(得分:6)
^[-+]?[0-9]*\.?[0-9]*([eE][-+]?[0-9]+)?$
将匹配以下(示例):
3.4
34.34
45345
-34
.55
-.45
-2.2
1.0e-10
45.
1.e308
答案 2 :(得分:5)
试试这个:
^\d*\.?\d+$
编辑:FredrikMörk提出了一个很好的建议,让这个表达具有文化意识。像这样构建表达式字符串:
String regex = String.Format("^\d*\{0}?\d+$",
CultureInfo
.CurrentCulture
.NumberFormat
.CurrencyDecimalSeparator);
答案 3 :(得分:4)
从各种答案中可以看出,正则表达式可以添加不必要的复杂性。 float.TryParse()
会告诉您确定该值是否可以浮动。
这也考虑了用户机器上的区域设置,正则表达式不会(或者如果他们尝试会变得丑陋)。
我会考虑使用类似这样的东西而不是正则表达式:
bool isValid = float.TryParse(textbox1.Text);
答案 4 :(得分:1)
^。?[ - +] [0-9] * \ [0-9] + $
答案 5 :(得分:1)
代码
^ [\ d。] + $
匹配字符串中的多个点,如“1.1.1”
试
^ \ d +(。\ d +)?$
代替
您还应注意,在某些国家/地区使用逗号代替点。