JavaScript/decodeURI
decodeURI()
は、エンコードされたURIを元のフォーマットにデコードするグローバル関数です。Uniform Resource Identifier (URI) において、エンコードされた特殊文字を元の文字に戻します。
構文
編集decodeURI(encodedURI)
パラメータ
編集encodedURI
- デコードするエンコードされたURI文字列
戻り値
編集- デコードされた元のURI文字列
例外
編集URIError
- 不正にエンコードされた文字が含まれている場合にスローされます
基本的な使用例
編集// エンコードされたURI const encodedURI = "https://example.com/%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF"; // デコード const decodedURI = decodeURI(encodedURI); console.log(decodedURI); // "https://example.com/こんにちは"
エンコード vs デコード
編集メソッド | 目的 | 対象文字 |
---|---|---|
encodeURI() |
URIをエンコード | 特殊文字(予約文字を除く) |
decodeURI() |
エンコードされたURIをデコード | エンコードされた文字を元に戻す |
特殊文字の扱い
編集decodeURI()
は以下の文字をデコードしません:
;
,
/
?
:
@
&
=
+
$
#
これらの文字は decodeURIComponent()
を使用することでデコード可能です。
注意点
編集- エンコードされていない文字列に対して使用しても安全です
- 不正なエンコード文字が含まれる場合は
URIError
を発生 - 可読性のために使用、セキュリティ目的では不十分
高度な使用例
編集// クエリパラメータを含むURI const complexURI = "https://example.com/search?q=%E6%A4%9C%E7%B4%A2%E8%AA%9E"; try { const decodedURI = decodeURI(complexURI); console.log(decodedURI); // "https://example.com/search?q=検索語" } catch (error) { if (error instanceof URIError) { console.error("デコード中にエラーが発生しました"); } }
関連メソッド
編集ブラウザ互換性
編集すべてのモダンブラウザおよびECMAScript 3以降でサポートされています。
仕様
編集- ECMAScript 3以降
- WHATWG URL 仕様