我有一张桌子和搜索输入。 这是我的搜索脚本;
var rows = $('table.insert tbody tr');
$('.search').on('input', function() {
var oldVal = $(this).val();
var val = '^(?=.*\\b' + oldVal.split(/\s+/).join('\\b)(?=.*\\b') + ').*$', reg = RegExp(val, 'i'), text;
$(rows).css({'display' : 'table-row'}).filter(function() {
text = $(this).text().replace(/\s+/gi, ' ');
return !reg.test(text);
}).css({'display' : 'none'});
});
但是当我尝试使用像“ıçöğüş”这样的unicodes进行搜索时,没有结果可以返回。所以我编写这些代码的脚本;
var rows = $('table.insert tbody tr');
$('.search').on('input', function() {
var oldVal = $(this).val();
var chars = new Array('üÜ', 'ıI', 'iİ', 'ğĞ', 'şŞ', 'çÇ');
for (var key in chars) {
var value = chars[key];
if ( oldVal.search(value.substr(0,1)) > -1 ) {
oldVal = oldVal.replace(value.substr(0,1), '['+value+']');
} else if ( oldVal.search(value.substr(1,1)) > -1 ) {
oldVal = oldVal.replace(value.substr(1,1), '['+value+']');
}
}
var val = '^(?=.*\\b' + oldVal.split(/\s+/).join('\\b)(?=.*\\b') + ').*$', reg = RegExp(val, 'i'), text;
$(rows).css({'display' : 'table-row'}).filter(function() {
text = $(this).text().replace(/\s+/gi, ' ');
return !reg.test(text);
}).css({'display' : 'none'});
});
仍然无法正常工作。 console.log输出是(用于搜索文本“hatalıkod”)
^(?=.*\bhatal[ıI]\b)(?=.*\bkod).*$
任何人都可以帮助我吗?我卡在这个时候。