You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Dexie.js中如何使用变量实现类LIKE查询

在Dexie.js中如何使用变量实现类LIKE查询

嘿,我明白你的问题啦!你现在遇到的情况是,直接把变量放进正则字面量里(比如/VarTest/),其实它会把VarTest当成固定字符串去匹配,而不是读取你定义的变量值。下面给你两种解决办法,都能实现用变量做类LIKE的模糊查询:

方法一:使用RegExp构造函数(兼容filter场景)

如果你还是想用filter方法,可以通过RegExp构造函数来动态创建正则表达式,这样就能把变量的值传入进去啦:

var searchTerm = 'Dani';
// 可以根据需求加第二个参数,比如'i'表示忽略大小写
var nameRegex = new RegExp(searchTerm);

db.friends.filter(function(friend) {
  return nameRegex.test(friend.name);
})
.toArray()
.then(function(result) {
  alert(`Found ${result.length} friends containing '${searchTerm}' in their name...`);
});

方法二:用Dexie内置的contains方法(更高效)

其实Dexie提供了更适合模糊查询的API,where(...).contains(),它能利用数据库索引(比如你代码里的friends: "name,age",name已经是索引字段),比客户端的filter性能好很多:

var searchTerm = 'Dani';

db.friends.where('name').contains(searchTerm)
.toArray()
.then(function(result) {
  alert(`Found ${result.length} friends containing '${searchTerm}' in their name...`);
});

简单说,方法二是更推荐的方式,因为它是在数据库层面做查询,不用把所有数据都拉到客户端再过滤,速度更快~

备注:内容来源于stack exchange,提问作者Dani Carla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 19:48:08