我有一个我需要操作的网址。我似乎无法用空格替换查询字符串中的所有“+”。
var url = window.location.replace(/+/g, ' ');
我在这里做错了什么?
或者有更好的方法吗?
答案 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更改,使用该语法应该没问题。