【发布时间】:2020-06-19 02:48:48
【问题描述】:
我正在使用lunr.js。
下面这段Javascript代码
- 从第一次搜索中获取查询参数
- 用空格替换绑定+字符
- 将修改后的查询存储在搜索字段中以供下次搜索
- 然后它最终使用修改后的查询进行搜索
var query = getUrlParameter('q');
var queryWithoutPlus = query.replace(/\+/g, " ");
searchField.value = queryWithoutPlus
index.search(queryWithoutPlus);
因此,查询参数字符串可能看起来像 test+ABCD+Test++Test2+-Test+-Test+Test 并且代码用空格替换查询参数 q 中的 + 字符,以便以一种很好的方式向用户显示结果,但是搜索字符串像
“测试+测试-测试”
目前结果
“测试测试-测试”
我希望
“测试+测试-测试”
我尝试使用类似
的 tempQuery 连续多次修改查询var tempQuery = query.replace(/\+\+/g, " -");
var queryWithoutPlus = tempQuery.replace(/\+\-/g, " -");
但这不适用于剩余的 + 字符并且感觉不对,所以我需要你的帮助。
归结为使用正确的正则表达式(无论是什么,欢迎提出建议)还是有更好的方法来使用 lunr.js 的查询参数?
【问题讨论】:
标签: javascript regex query-parameters lunrjs