c# - 允许用户只输入文字?

标签 c#

我如何做一个 bool 语句只允许文本?我有此代码只允许用户输入数字但不知道如何输入文本。

 bool Dest = double.TryParse(this.xTripDestinationTextBox.Text, out Miles);
 bool MilesGal = double.TryParse(this.xTripMpgTextBox.Text, out Mpg);
 bool PriceGal = double.TryParse(this.xTripPricepgTextBox.Text, out Price);

最佳答案

更新:看你的评论我建议你阅读这篇文章:

User Input Validation in Windows Forms


原始答案:最简单的方法(至少如果您使用的是 .NET 3.5)是使用 LINQ:

bool isAllLetters = s.All(c => char.IsLetter(c));

在旧的 .NET 版本中,您可以创建一个方法来为您执行此操作:

bool isAllLetters(string s)
{
    foreach (char c in s)
    {
        if (!char.IsLetter(c))
        {
            return false;
        }
    }
    return true;
}

您也可以使用正则表达式。如果你想允许 Unicode 中定义的任何字母,那么你可以使用这个正则表达式:

bool isOnlyLetters = Regex.IsMatch(s, @"^\p{L}+$");

如果你想限制到 A-Z 那么你可以使用这个:

bool isOnlyLetters = Regex.IsMatch(s, @"^[a-zA-Z]+$");

关于c# - 允许用户只输入文字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2844371/

相关文章:

c# - 静态方法更有效吗?

c# - 如何更改面板边框颜色

c# - 字节变量如何存储在内存中?

c# - LINQ 中的 If Else

c# - pipeline.invoke 和 powershell.invoke 有什么区别?

c# - 为什么这个函数不更新变量?

c# - WPF 将枚举绑定(bind)到可见性

c# - 更改主页上链接按钮上的文本?

c# - 是否可以部署自包含的 .NET Framework 应用程序?

c# - 排序列表并在排序后将特定元素保留在列表末尾