在javascript中使用过滤器时获取项索引

时间:2016-11-06 09:56:04

标签: javascript jquery arrays regex

我正在使用此代码来获取与特定关键字匹配的项目。

var match_data = function(search_str, items) {
    var reg = new RegExp(search_str.split('').join('\\w*').replace(/\W/, ""), 'i');
    return items.filter(function(item_data) {
        if (item_data.match(reg)) {
            return item_data;
        }
    });
};

有没有办法可以获得匹配项目的索引?

当我的搜索字符串在其中的任何位置包含\时,我也会不断收到此警告:

Uncaught SyntaxError: Invalid regular expression: /iw*m\w*\/: \ at end of pattern(…)

你们能帮助我解决这个错误。

提前致谢。

1 个答案:

答案 0 :(得分:2)

您可以使用另一个数组和Array#filter的回调API中的索引。

var cards = document.getElementsByClassName('card');

            for (var i = 0; i < cards.length; i++) {
                cards[i].onclick = function(target) {
                    this.innerHTML = 'up';
                }
            }