如何在 JavaScript 中替换字符串中“+”的多个实例

How do you replace multiple instances of '+' in a string in JavaScript?

本文关键字:实例 字符串 JavaScript 替换      更新时间:2023-09-26

我有一个需要操作的URL。我似乎无法用空格替换查询字符串中的所有"+"。

var url = window.location.replace(/+/g, ' ');

我在这里做错了什么?

还是有更好的方法?

replace()window.location上的一种方法,但它不是你想的那样。您希望在location.href上呼叫replace()

var url = window.location.href.replace(/'+/g, ' ');

正如 Vega 回答的那样,请注意,您还需要转义+,因为它作为量词的特殊含义。

你需要

转义++在正则表达式中具有特殊含义。

var url = window.location.href.replace(/'+/g, ' ');

编辑:更改为.href

如果您不需要运行数千次,则还有另一种选择。

var url = window.location.href.split('+').join(' ');

我提到它运行频率的原因是,根据这里的测试,这将比 Firefox 中的正则表达式慢一点,在 chrome 中慢一点,在 Opera 中更快:http://jsperf.com/regex-vs-split-join

因此,对于简单的 URL 更改,使用该语法应该没问题。