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

时间:2012-05-15 15:32:19

标签: javascript regex string replace

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

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

我在这里做错了什么?

或者有更好的方法吗?

3 个答案:

答案 0 :(得分:4)

replace() is a method on window.location,但不是the one you think。您需要在location.href上致电replace()

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

作为Vega answered,请注意您还需要转义+,因为special meaning as a quantifier

答案 1 :(得分:3)

你需要逃避++在regEx中具有特殊含义。

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

修改:已更改为.href

答案 2 :(得分:0)

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

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

我提到它运行频率的原因是它会比Firefox中的正则表达式慢一点,铬的速度要慢一些,而根据这里的测试,Opera的速度要快得多:http://jsperf.com/regex-vs-split-join

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