首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在listjs黑客列表上执行Regex?

如何在listjs黑客列表上执行Regex?
EN

Stack Overflow用户
提问于 2015-08-26 08:10:48
回答 1查看 127关注 0票数 0

我想在List.js的搜索功能上执行regex。默认情况下,它的工作方式是搜索一个存在于整个句子中的单词。我想要实现的是,它应该搜索一个词,这是一个句子的开头。

在上面的图片中,你可以看到在所有四个句子中都存在着"Was“,但我只想把它列在最后的列表中,其中"Was”是每个句子的第一个单词。

ListJs源

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-26 08:43:23

谢谢各位的建议。目前,我已经通过修改核心list.js文件来解决这个问题。我取代了:

代码语言:javascript
复制
var search = {
    list: function() {
        for (var k = 0, kl = list.items.length; k < kl; k++) {
            search.item(list.items[k]);
        }
    },
    item: function(item) {
        item.found = false;
        for (var j = 0, jl = columns.length; j < jl; j++) {
            if (search.values(item.values(), columns[j])) {
                item.found = true;
                return;
            }
        }
    },
    values: function(values, column) {
        if (values.hasOwnProperty(column)) {
            text = toString(values[column]).toLowerCase();
            if ((searchString !== "") && (text.search(searchString) > -1)) {
                return true;
            }
        }
        return false;
    },
    reset: function() {
        list.reset.search();
        list.searched = false;
    }
};

使用

代码语言:javascript
复制
if (typeof String.prototype.startsWith != 'function') {
    // see below for better implementation!
    String.prototype.startsWith = function (str) {
        return this.indexOf(str) === 0;
    };
}
var search = {
    list: function() {
        for (var k = 0, kl = list.items.length; k < kl; k++) {
            search.item(list.items[k]);
        }
    },
    item: function(item) {
        item.found = false;
        for (var j = 0, jl = columns.length; j < jl; j++) {
            if (search.values(item.values(), columns[j])) {
                item.found = true;
                return;
            }
        }
    },
    values: function(values, column) {
        if (values.hasOwnProperty(column)) {
            text = toString(values[column]).toLowerCase();
            if ((searchString !== "") && (text.startsWith(searchString))) {
                return true;
            }
        }
        return false;
    },
    reset: function() {
        list.reset.search();
        list.searched = false;
    }
};

解释:I创建了startsWith函数(在堆栈溢出中找到),该函数检查搜索字符串是否以给定句子的确切字符开始,并修改了父搜索块的函数。并将其text.search()函数替换为我的startsWith函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32221220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档