概念と使用方法
decodeURI()
関数はencodeURI()
でエンコードされたURLをデコードする際に使用する関数です。
つまり、encodeURI()
でエンコードされた特殊文字のみをデコードします。
特徴
encodeURI()
がエンコードしない文字(例:/
、?
、:
、&
、#
)はデコードされません。- このような文字を含むURLをデコードする場合は、代わりに
decodeURIComponent()
を使用してください。
基本の例
const uri = "https://www.example.com/?x=サンプル値";
const encoded = encodeURI(uri);
console.log(encoded);
// 出力: "https://www.example.com/?x=%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E5%80%A4"
const decoded = decodeURI(encoded);
console.log(decoded);
// 出力: "https://www.example.com/?x=サンプル値"
decodeURI()
関数の書式は次のとおりです。
構文
decodeURI(encodedURI)
パラメータ
encodedURI |
デコードするエンコード済みのURI文字列です。 |
---|
返り値
指定されたエンコード済みのencodedURI
をデコードした新しい文字列を返します。
decodeURI()
関数でデコードされない文字
encodeURI()
関数でエンコードされた文字のみを復号してデコードします。ただし、#
文字はデコードされません。
例
const encodedURI = "https://www.example.com/%E3%83%A1%E3%83%BC%E3%83%AB"; // エンコードされたURI
const decodedString = decodeURI(encodedURI); // デコードされた文字列
console.log(decodedString); // 出力: "https://www.example.com/メール"
注意点
encodeURIComponent()
関数でエンコードしたURIをdecodeURI()
関数でデコードすると、一部のみデコードされる場合があるため注意が必要です。
const uriComponent = "https://www.example.com/search?q=JavaScript & Web Development";
const encodedUriComponent = encodeURIComponent(uriComponent);
console.log(encodedUriComponent);
// 出力: "https%3A%2F%2Fwww.example.com%2Fsearch%3Fq%3DJavaScript%20%26%20Web%20Development"
const decodedUri = decodeURI(encodedUriComponent);
console.log(decodedUri);
// 出力: "https%3A%2F%2Fwww.example.com%2Fsearch%3Fq%3DJavaScript%20%26%20Web%20Development"
上の例のように、encodeURIComponent()
関数でエンコードしたURIをdecodeURI()
関数でデコードすると、一部のみデコードされる場合があります。このような場合は、decodeURIComponent()
関数を使用してデコードする必要があります。
const uriComponent = "https://www.example.com/search?q=JavaScript & Web Development";
const encodedUriComponent = encodeURIComponent(uriComponent);
console.log(encodedUriComponent);
// 出力: "https%3A%2F%2Fwww.example.com%2Fsearch%3Fq%3DJavaScript%20%26%20Web%20Development"
const decodedUri = decodeURIComponent(encodedUriComponent);
console.log(decodedUri);
// 出力: "https://www.example.com/search?q=JavaScript & Web Development"
仕様書
仕様書 | |
---|---|
decodeURI()
|
ECMAScript Language Specification #sec-decodeuri-encodeduri |
ブラウザ互換性
関数 |
デスクトップ Chrome
|
デスクトップデスクトップ Edge
|
デスクトップ Firefox
|
Safari
|
---|---|---|---|---|
decodeURI()
|
1 | 12 | 1 | 1.1 |