Dataview RowFilter转义无效字符

时间:2011-06-22 06:42:01

标签: c# asp.net sql datatable dataview

是否有任何人有一个方便的准备使用方法来转义通配符,字符串中的无效字符将被分配给C#中RowFilter的{​​{1}}。规则有点像下面

DataView

谢谢:)

1 个答案:

答案 0 :(得分:3)

这将根据here

中更详细列出的规格进行操作
protected void Page_Load(object sender, EventArgs e)
{
    CheckValue("fefe[][]12#");
    CheckValue("abvds");
    CheckValue("#");
    CheckValue(@"[][][][][]\\\\\][]");
    CheckValue("^^^efewfew[[]");
}

public static string CheckValue(string value)
{
    StringBuilder sBuilder = new StringBuilder(value);

    string pattern = @"([-\]\[<>\?\*\\\""/\|\~\(\)\#/=><+\%&\^\'])";

    Regex expression = new Regex(pattern);

    if (expression.IsMatch(value))
    {
        sBuilder.Replace(@"\", @"\\");
        sBuilder.Replace("]", @"\]");
        sBuilder.Insert(0, "[");
        sBuilder.Append("]");
    }
    return sBuilder.ToString();
}

我把它扔进了我正在看的网页,所以忽略了Page_Load,当然还有你想要的测试。

希望有所帮助。