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 に答える