我需要使用 JavaScript 重写查询。 首先,我检查变量是否存在,如果存在,我想用新的搜索词替换它。如果它不存在,那么我只需添加新变量
我能够使用简单的术语(如帽子、ufc 帽子)来使用它 空格是 %20,所以 ufc hat 实际上是 ufc%20hat
我遇到了化妆品、帽子棒球、咖啡和茶等术语的问题。
正确的正则表达式是什么?
下面是我的代码,它不起作用。
var url = String(document.location).split('?');
querystring = url[1];
if(querystring.match(/gbn_keywords=/)!=null)
querystring=querystring.replace(/gbn_keywords=[a-zA-Z0-9%20.]+/,"gbn_keywords="+term);
else
querystring=querystring+"&gbn_keywords="+term;
最佳答案
不需要正则表达式。要获取查询参数,请获取 ?
之后的所有内容。然后,用 &
分割字符串以返回每个参数。再次按 =
拆分以获得参数名称(=
右侧)和值(=
左侧)。迭代每个参数,使用每个参数重建 URL,排除您不需要的参数。您不应在这里遇到问题,因为如果要在参数中使用 ?
、&
和 -
,则必须对它们进行转义。您还说过,如果参数不存在,您想要添加该参数,因此只需在迭代每个参数时将变量设置为 true 即可(如果找到该参数)。如果您没有将其附加到重建的查询字符串的末尾。
关于javascript regex - 删除查询字符串变量(如果存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3644059/