Dataview RowFilter转义无效字符

本文关键字:字符 无效 转义 RowFilter Dataview | 更新日期: 2023-09-27 17:59:47

是否有一个方便的现成方法来转义通配符,即字符串中要为C#中的DataView分配给RowFilter的无效字符。规则有点像

If a column name contains any of these special characters ~ ( ) # ' / = > < + - * % & | ^ ' " 
[ ], you must enclose the column name within square brackets [ ]. If a column name contains 
right bracket ] or backslash ', escape it with backslash ('] or '').

谢谢:)

Dataview RowFilter转义无效字符

这将基于中更详细的规范

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,当然也可以按照你的意愿进行测试。

希望能有所帮助。