我有一个带有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);
}
然而,即使在转义元数据之后,过滤器也无法搜索元字符,但它可以用于所有其他字母数字输入。
我错过了什么吗?
提前致谢!
答案 0 :(得分:0)
最后,让过滤器正常工作。 JavaScript内置escape()
& encodeURIComponent()
为我做了工作。我没有以编程方式逃脱元帅。