必须同时包含数字和字母的文本框
本文关键字:文本 数字 包含 | 更新日期: 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/