如何基于特殊字符(如()+;*在ExtJS中使用keyup侦听器
我需要根据输入字符过滤如何基于特殊字符(如()+;*在ExtJS中使用keyup侦听器,extjs,Extjs,我需要根据输入字符过滤textfield,当我们输入普通字符时,它可以正常工作,但当我们输入特殊字符时,它不会过滤 如何使用keyup侦听器根据ExtJS中的特殊字符(如().+*)过滤textfield ***注意:剩余的特殊字符工作正常,只有()。+*不工作 代码: var filter = function (valu, listv) { if (valu !== '') { listv.store.filter({ property
textfield
,当我们输入普通字符时,它可以正常工作,但当我们输入特殊字符时,它不会过滤
如何使用keyup
侦听器根据ExtJS中的特殊字符(如().+*)过滤textfield
***注意:剩余的特殊字符工作正常,只有()。+*不工作
代码:
var filter = function (valu, listv) {
if (valu !== '') {
listv.store.filter({
property : 'value',
value : new RegExp(valu, "i"),
anyMatch : true, //optional, defaults to true
caseSensitive: true //optional, defaults to true
});
} else {
listv.store.filter({
property : 'value',
value : /.*/,
anyMatch : true,
caseSensitive: true
});
}
listv.select(-1);
}
您需要在正则表达式中添加特殊字符,如下所示:
function escapeRegExp(str) {
return str.replace(/[-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
}
var filter = function (valu, listv) {
if (valu !== '') {
listv.store.filter({
property : 'value',
value : new RegExp(escapeRegExp(valu), "i"),
// ...
Hi@Pumbaa80 my regex://^[a-zA-Z0-9çèèèèèèèèèèèèèèè\-,:+*'()=&&\uS]+$/您能告诉我如何使用()。+*字符以便我的搜索条件正常工作吗?您不需要在RegExp。我编辑了我的答案并添加了一些代码hi@Pumbaa80,@Chau我尝试转义我的正则表达式中的特殊字符,但它不起作用。我有一个搜索字段,我必须根据特殊字符搜索一个字段。+*()不起作用。其他特殊字符工作正常,如,-&,请给我建议一个正确的解决方案Hi@Pumbaa80它不适用于你给出的代码我不知道原因是什么???我会给你解释清楚的,请看:我有一个过滤文本字段,我们可以根据我们提供的正则表达式标准搜索值列表,应该显示匹配的值。我想你最好在ExtJS论坛上问这个问题。这个问题对于StackOverflow来说不够具体。