c# - 为什么我的正则表达式会得到意外结果?
问题描述
我目前正在测试一个项目的输入验证,并且我正在使用正则表达式。
我试图在尝试解析之前查看 TextBox 的内容是否是十进制数。
为此,我使用表达式\d+([\.\,]{1}\d+)?
我希望它检查是否有一个或多个数字,然后是零或一个点或逗号和一个或多个数字的组合。
有效的输入是:
123
12.3
1,23
无效的输入将是:
12.
.123
1...2
1.2.3.3
在使用不同的、已知的错误输入对其进行测试后,该表达式似乎不像我预期的那样工作。我错过了什么吗?
我正在使用的代码是:
private bool validateFloatNumber(string Text, TextBox Box)
{
Regex regex = new Regex("\\d+([\\.\\,]{1}\\d+)?");
bool result = regex.IsMatch(Text);
if (!result)
{
if (Text.Length == 0)
{
Box.Background = Brushes.Gray;
}
else
{
Box.Background = Brushes.Red;
}
}
else
{
Box.Background = Brushes.Transparent;
}
return result;
}
我用输入测试了它,1...1
写入的值results
是true
提前致谢!
解决方案
推荐阅读
- postgresql - 如何通过 S3 将 postgres 数据库同步到 AWS EC2 数据库实例?
- java - 自定义 Kafka 反序列化器上的 @Value null
- c# - 如果通过 C# 中的 Process 调用控制台应用程序,则不会为控制台应用程序创建日志文件
- scala - 在 Spark 中读取最后一列作为值数组的 CSV(并且值在括号内并用逗号分隔)
- c# - 非泛型方法'Dictionary
.Add(Type, Type)' 不能与类型参数一起使用 - spring - LocalDateTime 在客户端转换为 OffsetDateTime
- http - 在 Arduino 中向 Google Script 发送 HTTP 请求
- guava - CacheBuilder 使用番石榴缓存查询结果
- python - 如何从大型 CSV 文件中删除重复项?最好在 r 或 python 中
- sql - SQL Server - 更新连接 - 在 on 子句中设置特定值