定義と使い方
decodeURIComponent()関数は、encodeURIComponent()でエンコードされたURLをデコードする際に使用される関数です。
つまり、encodeURIComponent()によってエンコードされた特殊文字のみをデコードします。
特徴
encodeURIComponent()関数はURIの一部として使用できる文字を安全にエンコードし、URIとして利用できるようにします。- 一方、
decodeURIComponent()関数はencodeURIComponent()関数によってエンコードされた文字列を受け取り、エスケープ処理を解除して元の文字列として返します。
基本例
const originalURL = "https://www.example.com/search?q=JavaScript & Web Development";
const encodedURL = encodeURIComponent(originalURL);
console.log(encodedURL);
// 出力: "https%3A%2F%2Fwww.example.com%2Fsearch%3Fq%3DJavaScript%20%26%20Web%20Development"
const decodedURL = decodeURIComponent(encodedURL);
console.log(decodedURL);
// 出力: "https://www.example.com/search?q=JavaScript & Web Development"
構文
decodeURIComponent(encodedURI)
パラメータ
encodedURI |
デコード対象となるエンコード済みのURI文字列です。 |
|---|
返り値
指定されたエンコード済みのencodedURIをデコードした新しい文字列を返します。
例
const originalURL = "https://www.example.com/page?query=hello world";
const encodedURL = encodeURIComponent(originalURL);
console.log(encodedURL);
// 出力: "https%3A%2F%2Fwww.example.com%2Fpage%3Fquery%3Dhello%20world"
const decodedURL = decodeURIComponent(encodedURL);
console.log(decodedURL);
// 出力: "https://www.example.com/page?query=hello world"
この例ではシンプルなURLを使用し、エンコードとデコードがどのように動作するのかを視覚的に確認できます。
注意点
decodeURIComponent()関数は正しい形式でエンコードされた文字列を受け取り、デコードする必要があります。不正な形式の文字列や規則に従っていない文字列をデコードしようとすると、予期しない動作が発生する可能性があります。このような場合は例外処理を行う必要があります。
function decodeURL(encodedURL) {
try {
return decodeURIComponent(encodedURL);
} catch (error) {
console.error(error);
return null;
}
}
const encodedURL = "";
const decodedURL = decodeURL(encodedURL);
if (decodedURL) {
console.log(decodedURL);
} else {
console.log("Invalid URL.");
}
// 出力: "Invalid URL."
この例では、エンコードされたURLが空の文字列となっています。そのため、decodeURIComponent()関数でエラーが発生します。
この例のように、エンコードされたURLが不正な形式であったり、規則に従っていない場合は、decodeURIComponent()関数でエラーが発生する可能性があります。そのため、このようなケースでは例外処理を用いてエラーを適切に処理する必要があります。
仕様書
| 仕様書 | |
|---|---|
decodeURIComponent()
|
ECMAScript® 2026 Language Specification #sec-decodeuricomponent-encodeduricomponent |
互換性
| 関数 |
デスクトップ Chrome
|
デスクトップデスクトップ Edge
|
デスクトップ Firefox
|
Safari
|
Node.js
|
|---|---|---|---|---|---|
decodeURIComponent()
|
1 | 12 | 1 | 1.1 | 0.10 |