2

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

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

我在这里做错了什么?

或者有没有更好的方法?

4

3 回答 3

4

replace()是一种方法window.location,但它不是你想的那种。你想打电话replace()location.href

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

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

于 2012-05-15T15:34:36.450 回答
3

你需要逃避+. +在正则表达式中有特殊含义。

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

编辑:更改为.href

于 2012-05-15T15:33:38.537 回答
0

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

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

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

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

于 2012-08-08T07:18:15.690 回答