2

我正在开发一个带有用户 ID 的登录表单。我希望用户以指定的格式创建用户 ID。我需要一种使用 C# 将所有小写字母转换为大写的方法。用户 ID 将采用以下格式。格式为:

xyz\t4z4567(字符不区分大小写)

规则:

1.创建用户名时只允许使用特殊字符\。2.UserID sholud sholud 应该被转换成大写。like (xyz --> XYZ) 我需要检查用户在创建用户ID时是否输入了任何特殊字符。如果 UserID 中有任何特殊字符,则该方法需要删除特殊字符,并将所有小写字母转换为大写字母。

最后结果应该是以下方式:

xyz\t4z45@67 ---> XYZ\T4Z4567

我使用以下方法检查字符串是否包含以下字符,如果是,我将替换为空。

public string RemoveSpecialChars(string str)
{
   string[] chars = new string[] { ",", ".", "/", "!", "@", "#", "$", "%", "^", "&", "*", "'", ";", "-", "_", "(", ")", ":", "|", "[", "]" };

    for (int i = 0; i < chars.Length; i++)
    {
        if (str.Contains(chars[i]))
        {
            str = str.Replace(chars[i], "");
        }
    }

    return str;
}
4

3 回答 3

7

使用以下正则表达式替换:

outputStr = System.Text.RegularExpressions.Regex.Replace(inputStr, @"[^a-zA-Z0-9_\\]", "").ToUpperInvariant();  

输入:inputStr=@"xya\t4z567"
输出:"XYA\T4Z567"

于 2010-10-28T08:37:36.873 回答
2

使用 "yourstring".ToUpper() 你可以使用 "yourstring".Replace() 删除特殊字符。

于 2010-10-28T08:29:58.790 回答
0

if ((c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '\')首先,string.ToUpper()获取您的大写字符。

要摆脱所有特殊字符,您可以使用正则表达式或遍历字符串并将“AZ”和“/”复制到新字符串中。这会过滤掉所有其他字符,而无需知道它们是什么。

例如

        string invalid = @"as@bc3423*%*%ihh";
        string upper = invalid.ToUpper();
        string result = string.Empty;

        foreach (char c in upper)
        {
            if ((c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '\\')                    
            result += c;
        }

        Console.WriteLine(result);
于 2010-10-28T08:34:02.323 回答