C# 文本框,该文本框必须至少包含一组带数字或不带数字的字符
我正在windows phone 8上制作注册表,其中一个字段是用户名,该字段应至少包含一组带数字的字符,但不能仅包含数字,也不能包含特殊字符。我可以使用username.Text.Any(char.IsDigit)C# 文本框,该文本框必须至少包含一组带数字或不带数字的字符,c#,windows-phone-8,C#,Windows Phone 8,我正在windows phone 8上制作注册表,其中一个字段是用户名,该字段应至少包含一组带数字的字符,但不能仅包含数字,也不能包含特殊字符。我可以使用username.Text.Any(char.IsDigit)和username.Text.Any(char.isleter)`但是我将如何验证字符数和无特殊字符,请看一下正则表达式 用于匹配w/C# 为了获得帮助,构建表达式是一个很好的起点。如果我正确理解您的问题。用户名必须遵循以下规则: 1) 不能包含任何特殊字符 2) 必须同时包含字符和
和
username.Text.Any(char.isleter)`但是我将如何验证字符数和无特殊字符,请看一下正则表达式
用于匹配w/C#
为了获得帮助,构建表达式是一个很好的起点。如果我正确理解您的问题。用户名必须遵循以下规则: 1) 不能包含任何特殊字符 2) 必须同时包含字符和数字(例如,不能仅包含数字123,或仅包含字符) 我认为以下几点适合你:
private bool ValidateUserName(string Name)
{
bool temp = false;
if (Name.All(char.IsLetterOrDigit) && Name.Any(char.IsDigit) && !Name.All(char.IsDigit)) temp = true;
return temp;
}
条件的第一部分确保没有特殊字符,第二部分至少有一个数字,最后一部分不是所有数字。这对我来说适用于以下情况:
bool isValid = false;
string userName = "Kevin123";
isValid = ValidateUserName(userName); //true
userName = "kevinrules";
isValid = ValidateUserName(userName); //false
userName = "kevin!123";
isValid = ValidateUserName(userName); //false
userName = "12345";
isValid = ValidateUserName(userName); //false
如果我误解了规则,请告诉我。基于我对Regex有限的经验,我将执行for()循环,并检查数组中的每个字符是否符合要求。。。但是使用Regex()可能会更快。也许是对否决票的评论,这怎么不是一个有效的解决方案,OP显然已经在代码中了(从文本的使用来看。任何)我认为这不值得一个负面分数,实际上也是我对这个问题的第一个想法,所以,向上投票,使您至少达到0。好的,然后您将去掉if的中间条件。