JavaScript:pushState 替换搜索字符串中的静态值

标签 javascript regex

我有这个 URL 替换查询:

window.history.pushState(null, null, window.location.search.replace(/\bcolor=[^&]*/, '$&,Red'));

它像它应该的那样工作,但我怎样才能改变第一件事并用变量替换 color 做动态地像这样:

var value = 'color';
window.history.pushState(null, null, window.location.search.replace(/\b  var_in_here  =[^&]*/, '$&,' + filter_value.attr('data-value') + ''));

更新

由于 Jonas 的第一个回答,我在这里尝试过,但它不起作用:

var re = new RegExp('\b' + name + '=[^&]*');
window.history.pushState(null, null, window.location.search.replace(re, '$&,' + filter_value.attr('data-value') + ''));

最佳答案

您可以动态构建正则表达式:

 new Regex("\\b" + name + "=[^&]*")

需要两个 \ 才能正常工作。

关于JavaScript:pushState 替换搜索字符串中的静态值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53677901/

相关文章:

javascript - 如何将此 AngularJS HTML 模板添加到我的 Angular 8 项目中

javascript - checkPrime 函数返回不正确的值

javascript - 滚动时让右div在父div中滑动

javascript - Angular 2 CRUD 组件

python - 正则表达式从函数中提取表达式?

regex - Python正则表达式。在匹配问题之间捕获文本

javascript - 如何在 Kendo UI Scheduler 上显示自定义事件?

python - 查找与需要从另一个列表中有序包含的正则表达式匹配的字符串子列表

Python - 用于在列表中查找日期的正则表达式

regex - 使用正则表达式验证 Youtube 播放列表 URL