decodeURIはコロンをデコードしない

公開日: 

結論

A-Z a-z 0-9 ; , / ? : @ & = + $ - _ . ! ~ * ' ( ) #の文字は decodeURI ではデコードされません。decodeURIComponentを使いましょう。

詳細

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/encodeURI#%E8%A7%A3%E8%AA%AC

ドキュメントに全然書いてあるんですが、 A-Z a-z 0-9 ; , / ? : @ & = + $ - _ . ! ~ * ' ( ) #などの URL において特別な意味を持つ文字はencodeURI, decodeURIではエンコード、デコードされません。 よく考えてみれば、http:// とかの文字列がエンコードデコードされたらまずいですよね。

最後に

こんな簡単なことなのに、先輩に指摘されるまで悩んで 30 分くらい溶かしました。くそ。

では

Bye