2

ユーザーIDを使用してログインフォームを開発しています。ユーザーに指定された形式でユーザーIDを作成してもらいたい。すべての小文字を大文字に変換するためにC#を使用するメソッドが必要です。ユーザーIDは次の形式になります。形式は次のとおりです。

xyz \ t4z4567(文字は大文字と小文字を区別しません)

ルール:

1.ユーザー名の作成中は、特殊文字\のみが許可されます。2.ユーザーIDは大文字に変換する必要があります。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 に答える