我有一个需要操作的 URL。我似乎无法用空格替换查询字符串中的所有“+”。
var url = window.location.replace(/+/g, ' ');
我在这里做错了什么?
或者有没有更好的方法?
我有一个需要操作的 URL。我似乎无法用空格替换查询字符串中的所有“+”。
var url = window.location.replace(/+/g, ' ');
我在这里做错了什么?
或者有没有更好的方法?
replace()
是一种方法window.location
,但它不是你想的那种。你想打电话replace()
。location.href
var url = window.location.href.replace(/\+/g, ' ');
你需要逃避+
. +
在正则表达式中有特殊含义。
var url = window.location.href.replace(/\+/g, ' ');
编辑:更改为.href
如果您不需要运行它数千次,还有另一种选择。
var url = window.location.href.split('+').join(' ');
我提到它运行频率的原因是这将比 Firefox 中的正则表达式慢一点,根据这里的测试,在 chrome 中会慢一点,在 Opera 中会更快:http: //jsperf.com/regex-vs -拆分加入
因此,对于简单的 URL 更改,使用该语法应该没问题。