c# - 正则表达式只允许数字字符加号、点和 E

标签 c# regex string

我有一个 TextBox,它应该只接受数字(它们可以是简单的 intfloat,以 E 作为功率因数)。

所以一些有效的例子是:

1
+1.1
0
.1
1E-1
1e-2
-1.66
-6e-10

无效示例:

  E-1

通常它应该以数字或 + 和 - 符号或点开头。

然后我将它放在TextChanged 事件中就可以了。

 textBox.Text = Regex.Replace(textBox.Text, @"[\d]", ""); //so useless!

最佳答案

如果你想使用你的指数,试试这个(一定要添加 using System.Globalization;):

decimal value;
if(Decimal.TryParse(textBox.Text, NumberStyles.Float, CultureInfo.CurrentCulture, out value))
{
    textBox.Text = value.ToString();
}

关于c# - 正则表达式只允许数字字符加号、点和 E,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8726855/

相关文章:

c# - 表单上的 InvokeMember ("submit") 不重定向浏览器

c# - 以千为单位的数字格式

python - 为什么这个正则表达式不起作用?也许是因为双重回顾?

ios - 如何提取从 Eureka Forms 解析的值?

c# - 使用 C# 在 Artemis 上发送请求响应消息

c# - opencv_imgproc.dll 抛出 BadImageFormatException

java - 如何在java中使用正则表达式删除某些字符

javascript - 与/b 一起使用时,替换函数无法识别西里尔字符

c - 如何在 C 中定义/使用 2 维字符串数组(3 维字符?)?

java - 如何将带有小数点分隔符逗号和点的字符串解析为 Double