我有一个JSON对象的实时搜索输入
<input type="input" id="searchtxt" placeholder="Search">
这是我的JS代码
$('#searchtxt').keyup(function(){
var Field = $(this).val();
var regex = new RegExp(Field,"i");
$.each(data, function(key, val){
if (val.name.search(regex) != -1) {
//Do something
}
});
});
将i
作为标志我只能使我的正则表达式区分大小写,但我怎么能使它与重音字符匹配,因为我的JSON包含characters,έ,Ί(希腊字母)等字符。
例如:
var data = [
{"id":"1",
"name":"Παράδειγμα",
},
{"id":"2",
"name":"Ίδιο Κείμενο",
}];
因此,如果我搜索“Παραδέιγ”,val.name.search(regex)
将返回-1因ά/έ但我想要匹配。
一般来说,JS Regexp引擎不是非常友好的,因此重音标记被解析为不同的字符,似乎没有一个标志可以忽略它们。最好的解决方案是使用外部库,例如XRegexp,这是我最常见的建议。
另一个选择是remove diacritics using a function like this one,然后像往常一样使用正则表达式。