【JS】encodeURIComponent()和decodeURIComponent()

encodeURIComponent()和decodeURIComponent()函数均为JS的全局函数,主流浏览器均支持。主要作用为编码与解码。

encodeURIComponent()

定义

encodeURIComponent() 函数可把字符串作为 URI 组件进行编码。

该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ‘ ( ) 。

其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。

语法

1
encodeURIComponent(uri)

说明:uri,必需。一个字符串,含有 URI 组件或其他要编码的文本。

decodeURIComponent()

定义

decodeURIComponent() 函数可对 encodeURIComponent() 函数编码的 URI 进行解码。

语法

1
decodeURIComponent(uri)

说明:uri,必需。一个字符串,含有编码 URI 组件或其他要解码的文本。

实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>encodeAndDecode</title>
</head>
<body>
<script>
var uri="https://www.born2do.com/";
document.write("uri = " + uri);
document.write("<br>");
var uri_encode=encodeURIComponent(uri);
document.write("encode = " + uri_encode);
document.write("<br>");
document.write("decode = " + decodeURIComponent(uri_encode));
</script>
</body>
</html>

运行结果:

uri = https://www.born2do.com/
encode = https%3A%2F%2Fwww.born2do.com%2F
decode = https://www.born2do.com/