操作する必要のある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, ' ');
Vega が答えたように、量指定子としての特別な意味+
のために、エスケープする必要があることに注意してください。
をエスケープする必要があり+
ます。+
正規表現では特別な意味があります。
var url = window.location.href.replace(/\+/g, ' ');
編集:に変更.href
何千回も実行する必要がない場合は、別の方法があります。
var url = window.location.href.split('+').join(' ');
実行頻度について言及した理由は、ここでのテストによると、これは Firefox の正規表現よりも少し遅く、chrome ではかなり遅く、Opera では奇妙に速いためです: http://jsperf.com/regex-vs -分割結合
したがって、単純な URL の変更には、その構文を使用しても問題ありません。