1

在我的 MVC 应用程序中,我想创建一个可以在任何地方使用的方法,以避免出现任何特殊字符,如 @、"、' 或任何其他引起重大问题的字符。

因此,我尝试使用解析字符串的正则表达式来构建此方法,以检测字符串中是否有任何特殊字符,并在它们前面放置一个 \ 以使它们无害。

public static string ParseStringForSpecialChars(string stringToParse)
{
     const string regexItem = "^[a-zA-Z0-9 ]*$";

     string stringToReturn = Regex.Replace(stringToParse, regexItem, "\\");

     return stringToReturn;
}

我的代码中有很多问题:1)我不熟悉正则表达式,我很难弄清楚我想做什么。在这里,我想我试图检测 regexItem 中是否有除 thos 之外的任何字符;2)当代码到达该string stringToReturn =行时,我的应用程序崩溃了,因为它说该值不能为空。

谁能帮我吗?谢谢!

编辑

我被要求展示一个特殊字符的例子,它们是:

'/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\'

你明白了,我只是想避免将包含'的字符串发送到数据库,因为这将被解释为字符串的结尾并会引发错误。

4

1 回答 1

1

如果您担心写入 sql,请查看: SqlParameterCollection.AddWithValue

至于你的代码,我认为是这样的:

public static string ParseStringForSpecialChars(string stringToParse)
{
    const string regexItem = "[^a-zA-Z0-9 ]";

    string stringToReturn = Regex.Replace(stringToParse, regexItem, @"\$&");

    return stringToReturn;
}
于 2013-05-02T13:23:03.353 回答