Regex替换查询参数中的前导加字符(++,+-和+)?

问题描述 投票:1回答:1

我正在使用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中的+字符,以便以一种不错的方式向用户显示结果,但是搜索字符串类似] >

“ test + test -test”

当前结果为

“ test test -test”

我希望

“ test + test -test”

我尝试使用tempQuery连续多次修改查询,例如

var tempQuery = query.replace(/\+\+/g, " -");
var queryWithoutPlus = tempQuery.replace(/\+\-/g, " -");

但是这不能解决其余的+字符,并且感觉不正确,因此我需要您的帮助。

它是归结为使用正确的正则表达式(不管它是什么,欢迎提出建议),或者甚至有更好的方法将查询参数与lunr.js一起使用?

我正在使用lunr.js。下面的Javascript代码从第一次搜索中获取查询参数,用空格替换绑定+字符,并将修改后的查询存储在搜索字段中,用于...

javascript regex query-parameters lunrjs
1个回答
2
投票

您需要negative lookbehind查询(?<!\+)

© www.soinside.com 2019 - 2024. All rights reserved.