如何忽略过滤器中的null或所有空格?

时间:2019-04-01 20:00:25

标签: jquery filtering

我有created a jQuery filter,可从div列表中获取部门名称。当前,如果有人在该字段中输入大量空格,则不会显示任何部门。但是,如果仅输入空格,是否可以显示所有内容?

这是我的过滤器的外观:

$("#filter").keyup(function(){
var selectDept = $(this).val().toLowerCase();
filter(selectDept);
});

function filter(e) {
var regex = new RegExp('\\b\\w*' + e + '\\w*\\b');
        $('.dept').hide().filter(function () {
    return regex.test($(this).data('department'))
    }).show();
}

1 个答案:

答案 0 :(得分:1)

在值上使用trim()删除两端的空白,如果没有长度(虚假),则不要调用filter(),而是显示所有.dept

$("#filter").keyup(function() {
  var selectDept = $(this).val().trim().toLowerCase();
  if (selectDept) {// empty string is falsy
    filter(selectDept);
  } else {
    $('.dept').show()
  }
});