Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript从查询构建正则表达式_Javascript_Mongodb_Node.js - Fatal编程技术网

javascript从查询构建正则表达式

javascript从查询构建正则表达式,javascript,mongodb,node.js,Javascript,Mongodb,Node.js,在我正在开发的网站上,我有一个搜索框,我想在其中加入一个live autosuggest功能。(如果你知道一条比我要走的路线更好的路,请告诉我) 以下是我的想法: 当用户在搜索栏中键入时,触发onchange事件时,我希望将查询发送到服务器(通过ajax或websockets),然后从查询中构建正则表达式(/^SOMELETTERS/gi),然后搜索多个字段(产品名称、品牌、产品编号…),并将它们与正则表达式匹配。我想收集前10个结果,并将它们以json格式发送到客户端,以便在类似于google

在我正在开发的网站上,我有一个搜索框,我想在其中加入一个live autosuggest功能。(如果你知道一条比我要走的路线更好的路,请告诉我)

以下是我的想法: 当用户在搜索栏中键入时,触发onchange事件时,我希望将查询发送到服务器(通过ajax或websockets),然后从查询中构建正则表达式(
/^SOMELETTERS/gi
),然后搜索多个字段(产品名称、品牌、产品编号…),并将它们与正则表达式匹配。我想收集前10个结果,并将它们以json格式发送到客户端,以便在类似于google的autosuggest脚本中使用

以下是我的问题:
(1) 有更好的办法吗?

(2) 如果否,我将如何构建一个正则表达式来匹配以任何查询开头的项。。。我的意思是,语法是什么?我尝试了很多方法,但似乎都不起作用。

调用RegExp对象的构造函数

如果您有
req.params.q
您可以:

var rx = new Regex(req.params.q);

我不知道为什么要将用户输入视为regexp。用户将键入随机关键字,而不是
(\b| ^)foo[0-9]{2}
:-?我要搜索以用户输入的字符开头的术语。似乎建立一个正则表达式将是最快的搜索方法,不是吗?啊。。。嗯,我不认为对
^foo
执行regexp搜索比
像'foo%'
更快,因为后者可以使用索引。但我对MongoDB一无所知,也许它没有喜欢。好吧,太棒了,谢谢!我不太了解MongoDB的功能,但当我思考它时,我意识到它可能不会像我希望的那样健壮。所以我想我要试试ApacheSolr来运行搜索。@Stephen:我误解了你的问题。用尼克的回答;它会完全满足你的要求