Extjs存储过滤 - 包括metachars

时间:2011-09-29 09:02:05

标签: javascript regex extjs

我有一个带有Note字段(textarea)的数据存储,并希望显示满足用户输入的所有Notes(甚至是元字符)。

我已经编写了以下函数来处理这个问题:

function notefilter() {
    var newfilter = Ext.getCmp('searchnote');
    var searchStr = newfilter.getValue();
    searchStr = searchStr.replace('?', '\\?').replace('*', '\\*').replace('+', '\\+').replace('{', '\\{').replace('}', '\\}').replace('[', '\\[').replace(']', '\\]').replace('(', '\\(').replace(')', '\\)').replace('|', '\\|').replace('$', '\\$').replace('^', '\\^');

    var re = new RegExp(".*" + searchStr + ".*", "ig");
    Ext.getCmp('notesgrid').store.filter('Note', re);
}

然而,即使在转义元数据之后,过滤器也无法搜索元字符,但它可以用于所有其他字母数字输入。

我错过了什么吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

最后,让过滤器正常工作。 JavaScript内置escape()& encodeURIComponent()为我做了工作。我没有以编程方式逃脱元帅。