我有一个用于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包含诸如Ά,έ,Ί(希腊字母)等字符。
例如:
var data = [
{"id":"1",
"name":"Παράδειγμα",
},
{"id":"2",
"name":"Ίδιο Κείμενο",
}];
因此,如果我搜索“Παραδέιγ” val.name.search(regex)
将返回-1 /的原因,但我想找到一个匹配项。
答案 0 :(得分:0)
通常,JS Regexp引擎对Unicode不太友好,因此,重音符号被解析为不同的字符,并且似乎没有标记来忽略这些字符。最好的解决方案是使用外部库,例如XRegexp,这是我最常看到的建议。
另一种选择是remove diacritics using a function like this one,然后照常使用正则表达式。