c# - 如何仅以有效形式制作文本框数字和运算符。. .
问题描述
当我输入“12312.-.-.,”这样的输入时,程序不工作或出现任何错误
string c = textBox1.Text;
if (c.Contains(".") || c.Contains("-") || c.Contains("1") || c.Contains("2") || c.Contains("3") || c.Contains("4") || c.Contains("5") || c.Contains("6") || c.Contains("7") || c.Contains("8") || c.Contains("9") || c.Contains("0"))
{
if (c.IndexOf('-') == 0 || c.IndexOf('.')==c.Length-1)
{
c = c.Substring(1, c.Length - 1);
if (c.Contains("-") || c.Contains("."))
{
MessageBox.Show("Error");
}
}
}
else { textBox1.Clear(); }```
解决方案
您确实应该使用正则表达式检查输入值:
Regex rgx = new Regex(@"^-?\d+(\.\d+)?$");
string test1 = "-123.23";
string test2 = "12312.-.-.,,";
if (!rgx.IsMatch(test1)) MessageBox.Show("Error in test1");
if (!rgx.IsMatch(test2)) MessageBox.Show("Error in test2");
推荐阅读
- c# - 网站用户填写后保存pdf到数据库
- javascript - 通过映射到子 html 元素来呈现响应数据...使用 React 和更新状态
- java - 为我的程序实现一个数据结构
- r - R:遍历列,从列中选择值并将其写入同一行的新列
- f# - 初始化 Azure Cosmos DB 连接和 upsert 数据
- angular - 如何使用纯管道仅在从数组 Angular 添加/删除单个对象时触发重新渲染?
- c# - Mono 发行版中的 C# 编译器版本是否与 Mono 版本相同?
- java - 将通过使用 Spring Security 和 Spring Boot 应用程序进行身份验证生成的授权代码发送到哪里?
- tensorflow - TensorFlow 对象检测 API 增强
- python - pandas groupby,如果组键在它们之间发生更改,则组键将被单独处理