javascript - 创建字符串过滤器比较的最佳方法?

标签 javascript jquery

我的目标是创建一个过滤器 search 函数,特别是实际上我正在使用 .indexOf 方法,它允许我检查两个字符串是否相等。问题是,如果我的比较字符串带有空格,如下所示:Hair Cut

示例:
要搜索的字符串:Hair
对象中包含的字符串:Hair Cut

var cerca = $('#filter_service').val();
for(var i = 0; i < GlobalVariables.availableServices.length; i++) {
    if (cerca.toLowerCase().contains(GlobalVariables.availableServices[i].name.toLowerCase()) != -1) {
        console.log(GlobalVariables.availableServices[i].name)
    }
}

您可以看到,我对示例中包含字符串 Hair 的变量 cerca 进行了赋值。我将其与对象变量进行比较,我怎么说,问题是如果我插入字符串 Hair 我在控制台中没有得到任何响应,而且如果我插入带有分隔符空格的字符串(如比较字符串 ) >剪头发 我收到控制台响应。

当变量 cerca 等于 compair 字符串的第一个字符时,如何打印结果?特别是

我不知道我是否说清楚了,希望是的。

最佳答案

.contains() 用于检查 DOM 元素子元素。您上面说您正在使用 .indexOf 进行检查,但看起来您在代码中没有使用它?

var cerca = $('#filter_service').val();
var searchIn;

for(var i = 0; i < GlobalVariables.availableServices.length; i++) {
    searchIn = GlobalVariables.availableServices[i].name.toLowerCase().split(' ');
    for (j = 0; j < searchIn.length; j++) {
        if (cerca.toLowerCase().split(' ').indexOf(searchIn[j].toLowerCase()) >= 0) {
            console.log(GlobalVariables.availableServices[i].name);
        }
    }
}

$('#filter_service').on('input', function() {
    var inputStr = $('#filter_service').val();
    var similar = [];
    for (i = 0; i < GlobalVariables.availableServices.length; i++) {
        if (GlobalVariables.availableServices[i].name.toLowerCase().indexOf(inputStr.toLowerCase) >= 0) {
            similar[similar.length] = GlobalVariables.availableServices[i].name;
        }
    }
    // At this point, you can do whatever you want with the similar service
    // names (all of the possible result names are included in the array, similar[].)
});

我现在无法测试该代码,但理论上它应该可以工作。

这是一个 JSFiddle 演示: http://jsfiddle.net/MrGarretto/vrp5pghr/

编辑:更新并修复了我的错误

编辑2:添加了“可能的结果”解决方案

编辑3:添加了一个JSFiddle

关于javascript - 创建字符串过滤器比较的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33711732/

相关文章:

javascript - 如果我先添加元素,然后如果我稍后动态删除该元素,我应该收到警报。我怎么做?

javascript - phonegap->不使用GPS查找手机的位置(可以使用互联网)

jquery - 根据类更改 jQuery 的链接

javascript - 无法从导入的模块中找到函数

javascript - 使用 ruby​​ 设置基本的本地服务器

JavaScript associativea 数组 - 传递一个字符串作为数组键 : value pairs

jquery - 基于 jQuery 的 YUI 风格菜单,用于网站导航

php - 自动更新$_SESSION[余额]?

jQuery .ajax() POST 请求在 RESTful WCF 上抛出 405(方法不允许)

javascript - 飞行前响应中的访问控制允许 header