必须同时包含数字和字母的文本框

本文关键字:文本 数字 包含 | 更新日期: 2023-09-27 17:56:56

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

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

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

必须同时包含数字和字母的文本框

目前,您的代码显示

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

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

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

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;
}

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

您也不需要正则表达式:

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

注意:查看 Char.IsLetter 的规范,以便字符集对于您想要执行的操作是可以接受的。

简单思考:

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

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

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