Javascript表使用unicodes进行多列搜索

时间:2016-06-26 03:29:42

标签: javascript search unicode replace

我有一张桌子和搜索输入。 这是我的搜索脚本;

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).*$

任何人都可以帮助我吗?我卡在这个时候。

0 个答案:

没有答案