【问题标题】:Textbox that MUST contain both numbers and letters?必须同时包含数字和字母的文本框?
【发布时间】:2013-01-31 17:12:32
【问题描述】:

我想知道有没有办法确保用户在文本框中输入数字和字母,如果没有提示消息?我有如下:

if(!Regex.IsMatch(string, @"^[a-zA-Z]+$") && !Regex.IsMatch(string, @"^[1-9]+$"))
{  
    MessageBox.Show("Please Enter both numbers and letters");
    return;
}

所以我在这里想说的是,如果字符串没有字母并且如果字符串没有数字,则提示错误。但是,如果你输入所有字母(或数字),没有错误提示,所以我想知道是否有办法做到这一点。我研究了这些问题,除了如何允许某些字符之外没有发现任何东西。

【问题讨论】:

    标签: c# textbox alphanumeric


    【解决方案1】:

    目前,您的代码显示

    如果字符串不完全由字母组成,也不完全由数字组成,则显示消息

    这与你所追求的几乎完全相反。

    要修复它,您需要将“不完全由”更改为“不包含”,并将“和”更改为“或”:

    if(!Regex.IsMatch(string, @"[a-zA-Z]") || !Regex.IsMatch(string, @"[1-9]"))
    {  
        MessageBox.Show("Please Enter both numbers and letters");
        return;
    }
    

    正则表达式现在只查找单个字母或数字,and 现在是 or

    如果您想确保您的输入包含字母和数字,您可以单独执行以下步骤:

    if(Regex.IsMatch(string, @"[^a-zA-Z0-9]"))
    {  
        MessageBox.Show("Please Enter only numbers and letters");
        return;
    }
    

    【讨论】:

      【解决方案2】:

      如果字符串没有任何字母或没有任何数字,您要做的是显示消息。

      你也不需要正则表达式:

      if(!str.Any(Char.IsLetter) || !str.Any(Char.IsDigit)) {  
        MessageBox.Show("Please Enter both numbers and letters");
        return;
      }
      

      注意:请检查 Char.IsLetter 的规范,以便您可以接受该字符集。

      【讨论】:

      • 完美!!非常感谢!!
      【解决方案3】:

      想得简单:

      [a-zA-Z0-9]+ 是您可能想尝试的正则表达式。

      [a-zA-Z0-9\s]+ 是正则表达式,单词/数字之间允许有空格。

      在这里试试你的正则表达式:http://regexhero.net/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-02-17
        • 2020-07-06
        • 1970-01-01
        • 2016-02-08
        • 2021-09-16
        • 1970-01-01
        • 2014-07-05
        • 2014-09-28
        相关资源
        最近更新 更多