C#を使用して文字列から大文字や特殊文字を削除するには、小文字から変換文字列
質問
私は、ユーザーIDとログインフォームを開発しています。私は、ユーザーが指定した形式でユーザーIDを作成します。私は大文字にすべて小文字に変換するためにC#を使用する方法が必要になります。ユーザーIDは、次のfomatになります。 形式は次のとおりです。
XYZ \ t4z4567(文字は大文字と小文字を区別しません)
ルールます:
1.Only特殊文字は、\ユーザー名を作成するときに許可されています。 2.ユーザIDをuppercase.likeに変換することsholud(XYZ - > XYZ) 私は、ユーザーがユーザーIDを作成しながら、任意の特殊文字を入力するかどうかを確認する必要があります。特別なcharctersがユーザーIDである場合の方法は、特殊文字を削除しneedshold、大文字lettrsにすべて小文字に変換する必要があります。
最終的に結果は次のようにする必要があります:
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;
}
解決
を使用する次の正規表現の置き換えます:
outputStr = System.Text.RegularExpressions.Regex.Replace(inputStr, @"[^a-zA-Z0-9_\\]", "").ToUpperInvariant();
入力:inputStr=@"xya\t4z567"
出力:"XYA\T4Z567"
他のヒント
使用 "yourstring" .ToUpper() そしてあなたは「yourstring」.Replace()は特殊文字を削除するために使用することができます。
IF((C> = 'A' && C <= 'Z')||(C> = '0' && C <= '9')|| C == '\')まず、ストリング。 TOUPPER()は、あなたの大文字を取得します。
新しい文字列の中で、あなたがいずれかの文字列やコピーによる正規表現またはループを使用することになり、のすべてのの特殊文字「A-Z」を取り除くためにと「/」。この彼らが何であるかを知らなくても、他のすべての文字が出てフィルターます。
例えばます。
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);