decodeURIComponent()
**decodeURIComponent()
** 函数解码先前由 encodeURIComponent()
或类似例程创建的统一资源标识符 (URI) 组件。
试一试
语法
js
decodeURIComponent(encodedURI)
参数
encodedURI
-
统一资源标识符的编码组件。
返回值
一个新字符串,表示给定编码的统一资源标识符 (URI) 组件的解码版本。
异常
URIError
-
如果
encodedURI
包含一个%
后面没有两个十六进制数字,或者如果转义序列没有编码有效的 UTF-8 字符,则抛出。
描述
decodeURIComponent()
是全局对象的函数属性。
decodeURIComponent()
使用与 decodeURI()
中描述的相同的解码算法。它解码所有转义序列,包括那些不是由 encodeURIComponent
创建的转义序列,例如 -.!~*'()
。
示例
解码西里尔语 URL 组件
js
decodeURIComponent("JavaScript_%D1%88%D0%B5%D0%BB%D0%BB%D1%8B");
// "JavaScript_шеллы"
捕获错误
js
try {
const a = decodeURIComponent("%E0%A4%A");
} catch (e) {
console.error(e);
}
// URIError: malformed URI sequence
从 URL 解码查询参数
decodeURIComponent()
不能直接用于从 URL 解析查询参数。它需要一些准备。
js
function decodeQueryParam(p) {
return decodeURIComponent(p.replace(/\+/g, " "));
}
decodeQueryParam("search+query%20%28correct%29");
// 'search query (correct)'
规范
规范 |
---|
ECMAScript 语言规范 # sec-decodeuricomponent-encodeduricomponent |
浏览器兼容性
BCD 表格仅在浏览器中加载