Node.js 在节点JS中搜索时获取0结果

Node.js 在节点JS中搜索时获取0结果,node.js,regex,mongodb,search,find,Node.js,Regex,Mongodb,Search,Find,我已经创建了一个用于搜索的NodeJSAPI,并在MongoDB中存储了一些数据。 我的数据存储方式如下所示: FN02 ROL FN02 ROM FN02 RON FN02 ROO FN02 ROS FN02 ROT FN02 ROV FN02 ROW FN02 ROX FN02 ROY 所以,当我用fn02搜索时,它工作得很好,但当我再添加一个参数,如fno2r,它不起作用,我认为这是因为空间,但不确定,所以我修剪了空间,但仍然不起作用 我的搜索代码是 searchque

我已经创建了一个用于搜索的NodeJSAPI,并在MongoDB中存储了一些数据。 我的数据存储方式如下所示:

FN02 ROL

FN02 ROM

FN02 RON

FN02 ROO

FN02 ROS

FN02 ROT

FN02 ROV

FN02 ROW

FN02 ROX

FN02 ROY
所以,当我用fn02搜索时,它工作得很好,但当我再添加一个参数,如fno2r,它不起作用,我认为这是因为空间,但不确定,所以我修剪了空间,但仍然不起作用

我的搜索代码是 searchquery是我的搜索数据

let regexexp = new RegExp(searchquery,'i');
s = {"name": regexexp};

function callback(totalcount){
     db.collection("customers").find(s).limit(16).toArray(function(err, res) {
        if (err) throw err;
        responsedata = { status: true,error : false,data : res };
        resolve(responsedata);
      });
  }

知道我做错了什么吗?

我建议将输入中的空格设置为可选:

let regexexp = new RegExp(searchquery.split('').join('\\s*'),'i');
这里,

  • searchquery.split(“”)
    -将
    searchquery
    拆分为单独的字符
  • .join('\\s*')
    -在每个字符之间用
    \s*
    连接拆分,这样,如果
    searchquery
    字符之间有任何空格,它们也可以匹配

如果完全忽略空白怎么办<代码>让regexxp=newregexp(searchquery.split(“”).join(“\\s*”),“i”)?感谢您的回复,它可以工作,但当我在URL中像这样传递并将其转换为?s=fn03%20a时,我的搜索API就不能工作了,就像它不能命中一样,但它在Postman中工作。不知道您的意思。在正则表达式中使用它之前,请确保
searchquery
是文本,而不是编码的URI参数。感谢您的回复,它为我工作了。