【问题标题】:How to perform a WHERE LIKE "%string%" search equivalent for JSON in lawnchair如何在草坪椅中对 JSON 执行 WHERE LIKE "%string%" 搜索等效项
【发布时间】:2013-10-15 21:08:36
【问题描述】:

加载网站后,我想对 PHP 脚本进行一次 ajax 调用,该脚本返回一个 json 数据数组(最多 200 条),并将其存储在草坪椅中。见http://brian.io/lawnchair/

我预加载数据,不必每次都等待 PHP/MySQL 响应 ajax 请求。我想要一个在键入时返回值的自动完成字段。结果来自草坪椅,因此不再调用 MySQL 服务器。

所以考虑我们有这个数据集:

当用户键入“p”时,需要显示以上所有内容。当用户键入“app”时,仅显示 Apple 和 Pineapple。

因此,我需要使用 MySQL WHERE LIKE "%string%" 等效代码搜索数据集。我查看了布赖恩的网站,但我只看到查询可以进行完全匹配搜索?见:http://brian.io/lawnchair/plugins/

提前感谢您提供正确方向的任何提示。

【问题讨论】:

    标签: javascript ajax json lawnchair


    【解决方案1】:

    快速浏览(相对较差的)文档表明,以下内容会起作用:

    var hits = [],
        searchExpr = RegExp.escape(searchValue);
    
    fruitStorage.where('/' + searchExpr + '/i.test(record.name)', function (record) {
        hits.push(record);
    });
    
    // now do something with hits
    

    无需深入研究源代码,这也可能有效。

    var hits = [],
        searchExpr = new RegExp(RegExp.escape(searchValue), "i");
    
    fruitStorage.where(
        function (record) { return searchExpr.test(record.name); }, 
        function (record) { hits.push(record); }
    );
    

    顺便说一句,RegExp.escape() 取自 this answer。

    【讨论】:

    • 感谢您的回答。我会测试一下!
    • @DelphiLynx 还有...?它有效吗? (我必须承认我没有测试过。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多