我正在尝试根据输入的字符验证字符串。我希望能够设置除字符和数字之外允许的字符。以下是我的扩展方法:
public static bool isAlphaNumeric(this string inputString, string allowedChars)
{
StringBuilder str = new StringBuilder(allowedChars);
str.Replace(" ", "\\s");
str.Replace("\n","\\\\");
str.Replace("/n", "////");
allowedChars = str.ToString();
Regex rg = new Regex(@"^[a-zA-Z0-9" + allowedChars + "]*$");
return rg.IsMatch(inputString);
}
我使用它的方式是:
s string = " te\m@as 1963' yili.ışçöÖÇÜ/nda olbnrdu" // just a test string with no meaning
if (s.isAlphaNumeric("ışŞö\Ö@üÜçÇ ğ'Ğ/.")) {...}
当然它会出错:
parsing "^[a-zA-Z0-9ışŞö\Ö@üÜçÇ\sğ'Ğ/.]*$" - Unrecognized escape sequence
stringbuilder替换函数是错误的,我知道。我希望能够接受allowedChars参数中给出的所有字符。这还可以包括斜杠(任何其他类似于我不知道的斜杠的字符?)鉴于此,如何让我的替换功能工作?而且我正在做的方式是正确的吗?我对正则表达式非常陌生,并且不知道如何使用它们......
答案 0 :(得分:7)
答案 1 :(得分:2)
您正在寻找Regex.Escape
。