必须至少包含一组带数字或不带数字的字符的文本框

本文关键字:数字 字符 文本 包含一 | 更新日期: 2023-09-27 18:00:05

我正在windows phone 8上制作一个注册表单,其中一个字段是username,它应该至少包含一组带数字或不带数字的字符,但不能只包含数字,也不能包含我可以使用username的特殊字符。Text.Any(char.IsDigit);and用户名。Text.Any(char.IsLetter)`但是我将如何验证字符和非特殊字符的数量

必须至少包含一组带数字或不带数字的字符的文本框

如果我正确理解你的问题。用户名必须遵循以下规则:

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

如果我误解了规则,请告诉我。

看看正则表达式。

用于匹配w/C#http://msdn.microsoft.com/en-us/library/twcw2f1c%28v=vs.110%29.aspx

寻求构建表达式的帮助http://regexlib.com/是一个很好的起点。