javascript regex - 删除查询字符串变量(如果存在)

标签 javascript regex syntax query-string

我需要使用 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/

相关文章:

javascript - JavaScript 数据类型和对象类型的混淆

php - mySQL 语法问题

python - Python中 "in"的关联性?

javascript - if(document.getElementById ('something' )!=null) 与 if(document.getElementById ('something' )) 相同吗?

javascript - 弹出背景不占据屏幕高度的完整高度

javascript - 添加 Assets 过滤器修复后 CakePHP 主题 CSS 和 JS 损坏

jquery - 替换文本区域中的数字模式和电子邮件

ruby - 解析 ruby​​ 上的日志文件

java简单的正则表达式

java - 谁能告诉我为什么这个 Hibernate 查询无效吗?