JavaScript使用encodeURI()和decodeURI()获取字符串值的方法
在JavaScript中,有时候需要将字符串数据转换成URI格式,或者从URI格式中获取字符串数据。这时候可以使用encodeURI()
和decodeURI()
方法来完成转换。
encodeURI()
encodeURI()
方法将字符串数据作为URI进行编码,其中一些字符例如&、/和:是URI组成部分,如果字符串中存在这些字符,则它们会被编码。
let str = "hello/world";
let encodedStr = encodeURI(str);
console.log(encodedStr);
// 输出结果:hello/world
let str2 = "hello&world";
let encodedStr2 = encodeURI(str2);
console.log(encodedStr2);
// 输出结果:hello%26world
在上面的例子中,我们定义了一个字符串str
和str2
。其中,str
中包含一个URI组成部分/
,str2
中包含一个URI组成部分&
。当我们将这两个字符串使用encodeURI()
编码后,str
中的/
会被保留,str2
中的&
则被转换成了%26
。
值得注意的是,encodeURI()
方法只对URI组成部分以外的部分进行编码。如果需要对完整的URI进行编码,可以使用encodeURIComponent()
方法。
decodeURI()
decodeURI()
方法将URI格式的数据进行解码,将其中的编码字符转换为原始字符。
let encodedStr = "hello%26world";
let rawStr = decodeURI(encodedStr);
console.log(rawStr);
// 输出结果:hello&world
在上面的例子中,我们定义了一个URI格式的字符串encodedStr
,其中包含了一个被编码的&
字符,使用decodeURI()
方法解码后,将%26
转换为了原始字符&
。
总结来说,encodeURI()
和decodeURI()
提供了对URI格式字符串的编码和解码,方便我们在JavaScript中进行URL传参。
示例
示例1. 对含有特殊字符的字符串进行编码和解码
let str = "hello@world!$#%";
let encodedStr = encodeURI(str);
console.log(encodedStr);
// 输出结果:hello@world!$#%
let decodedStr = decodeURI(encodedStr);
console.log(decodedStr);
// 输出结果:hello@world!$#%
在上面的示例中,我们定义了一个包含特殊字符的字符串str
。在使用encodeURI()
对该字符串进行编码时,发现该字符串并不包含URI组成部分,所以并没有进行任何编码。同样的,使用decodeURI()
对已经编码的字符串进行解码时,也不会有任何变化。
示例2. 对含有URI组成部分的字符串进行编码和解码
let str = "https://www.baidu.com/";
let encodedStr = encodeURI(str);
console.log(encodedStr);
// 输出结果:https://www.baidu.com/
let decodedStr = decodeURI(encodedStr);
console.log(decodedStr);
// 输出结果:https://www.baidu.com/
在上面的示例中,我们定义了一个包含URI组成部分的字符串str
。在使用encodeURI()
对该字符串进行编码时,发现其包含URI组成部分,所以并没有进行任何编码。同样的,使用decodeURI()
对已经编码的URI字符串进行解码时,也不会有任何变化。
综上,对于一些包含特殊字符的字符串,可以使用encodeURIComponent()
方法进行编码,而对于URI格式的字符串,则可以使用encodeURI()
方法进行编码。对于已经进行过编码的字符串,则可以使用decodeURI()
方法进行解码。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript使用encodeURI()和decodeURI()获取字符串值的方法 - Python技术站