📅  最后修改于: 2023-12-03 15:30:25.140000             🧑  作者: Mango
在 JavaScript 中, decodeURI() 和 encodeURI() 是两个常用的字符串处理函数。它们用于处理 URI 编码的字符串(即 URL)。
在 JavaScript 中,URL 可以包含各种字符,例如:字母、数字、标点符号以及一些特殊字符,如空格、中文等。但是,在发送 URL 时,浏览器会将 URL 进行编码,以避免在传输过程中出现问题。此时,encodeURI() 函数就可以发挥作用。
encodeURI() 函数可以将 URL 字符串中的特殊字符进行编码,即将某些字符替换成一些字符序列,以便于传输。具体来说,它会将特殊字符 %、#、&、+、/、?、=、和; 转换成一些特殊的编码字符。
以下是 encodeURI() 函数的语法:
encodeURI(uri)
其中,uri 表示要编码的 URL 字符串。
举个例子,下面的代码将通过 encodeURI() 函数将一个 URL 字符串进行编码:
const url = "https://www.example.com?name=小明&age=18";
const encodedUrl = encodeURI(url);
console.log(encodedUrl);
// 输出结果:https://www.example.com?name=%E5%B0%8F%E6%98%8E&age=18
在上面的例子中,我们使用 encodeURI() 函数将 URL 字符串进行了编码。这样做可以保证在传输 URL 时不会出现问题。
如果我们从服务器获得了一个编码后的 URL 字符串,例如上面例子中的 encodedUrl,我们需要将它还原成原始的 URL 字符串。此时,可以使用 decodeURI() 函数。
decodeURI() 函数可以将编码后的 URL 字符串进行解码,即将编码字符还原成原来的字符。具体来说,它会将 %xx 的编码字符替换成相应的字符。
以下是 decodeURI() 函数的语法:
decodeURI(encodedURI)
其中,encodedURI 表示要解码的编码后的 URL 字符串。
举个例子,下面的代码将通过 decodeURI() 函数将一个编码后的 URL 字符串进行解码:
const encodedUrl = "https://www.example.com?name=%E5%B0%8F%E6%98%8E&age=18";
const decodedUrl = decodeURI(encodedUrl);
console.log(decodedUrl);
// 输出结果:https://www.example.com?name=小明&age=18
在上面的例子中,我们使用 decodeURI() 函数将编码后的 URL 字符串进行了解码。这样做可以将其中的中文字符还原回原始的状态。
该篇文章介绍了 JavaScript 中两个常用的字符串处理函数 decodeURI() 和 encodeURI(),它们用于处理 URI 编码的字符串。encodeURI() 函数可以将 URL 字符串中的特殊字符进行编码,而 decodeURI() 函数可以将编码后的 URL 字符串进行解码。
对于想要发送 URL 字符串的开发者来说,这两个函数十分重要。如果不使用它们,可能会由于编码问题导致 URL 传输失败。因此,在处理 URL 字符串时,一定要注意使用 encodeURI() 和 decodeURI() 函数。