我有一个TextBox,它只能接受数字(它们可以是简单的int
或float
,其中E是功率因数)。
所以一些有效的例子是:
1
+1.1
0
.1
1E-1
1e-2
-1.66
-6e-10
无效的例子:
E-1
通常它应该以数字或+和 - 符号或DOT开头。
然后我会把它放在TextChanged
事件中,一切都会好的。
textBox.Text = Regex.Replace(textBox.Text, @"[\d]", ""); //so useless!
答案 0 :(得分:3)
如果您希望使用指数,请尝试此操作(请务必添加using System.Globalization;
):
decimal value;
if(Decimal.TryParse(textBox.Text, NumberStyles.Float, CultureInfo.CurrentCulture, out value))
{
textBox.Text = value.ToString();
}
答案 1 :(得分:1)
为什么要使用正则表达式?
float f;
bool isNumber = Single.TryParse(textbox.Text, out f);