JavaScript使用escape()、encodeURI()和decodeURI()实现URI编码解码

这篇文章介绍了JavaScript使用escape()、encodeURI()和decodeURI()实现URI编码解码的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

目录

一、URI编码解码

1、编解码一个字符串(淘汰)

ECMAScript v3 反对使用该方法,应使用 decodeURI() 和 decodeURIComponent() 替代它。

扫描二维码关注公众号,回复: 16666153 查看本文章

1、escape():编码一个字符串

escape()除了 ASCII 字母、数字和特定的符号外,对传进来的字符串全部进行转义编码。

语法:escape(value);

1

2

3

varstr = "javascript 你好";

varstr1 = escape(str);

document.write(str1);  //输出:javascript%20%u4F60%u597D

2、unecape():解码一个由escape()函数编码的字符串

1

2

3

4

5

varstr = "javascript 你好";

varstr1 = escape(str);

document.write(str1); //javascript%20%u4F60%u597D

varstr2 = unescape(str1);

alert(str2); //弹出 javascript你好

2、编解码一个URI

1、encodeURI():转义一个URI中的字符

encodeURI() 用于编码整个URI,因为URI中的合法字符都不会被编码转换。

语法:encodeURI(uri) 这个在编码不同的AJAX请求时,解决中文乱码问题经常用到。

1

2

3

varstr1 = "你好javascript";

varstr2 = encodeURI(str1);

document.write(str2); //输出:%E4%BD%A0%E5%A5%BDjavascript

2、decodeURI():解码一个URI中的字符

语法:decodeURI(uri)

1

2

3

4

5

6

varstr1 = "你好javascript";

varstr2 = encodeURI(str1);

document.write(str2); //输出:%E4%BD%A0%E5%A5%BDjavascript

varstr3 = decodeURI(str2);

document.write("

"+ str3) //输出:你好javascript

3、编解码一个URI组件

1、encodeURIComponent():转义URI组件中的字符

encodeURIComponent方法在编码单个URIComponent(指请求参数)应当是最常用的,它可以讲参数中的中文、特殊字符进行转义,而不会影响整个URL。

1

2

3

varstr1 = "你好javascript";

varstr2 = encodeURIComponent(str1);

document.write(str2); //输出:%E4%BD%A0%E5%A5%BDjavascript

2、decodeURIComponent():解码一个URI组件中的字符

1

2

3

4

5

6

varstr1 = "你好javascript";

varstr2 = encodeURIComponent(str1);

document.write(str2); //输出:%E4%BD%A0%E5%A5%BDjavascript

varstr3 = decodeURIComponent(str2);

document.write("

"+ str3) //输出:你好javascript

二、html编码解码

1、html编码解码函数

编码函数:

1

2

3

4

5

6

7

8

9

10

functionhtmlEncode(str) {

vars = "";

if(str.length == 0) return"";

s = str.replace(/&/g, "&");

s = s.replace(/</g, "&lt;");

s = s.replace(/>/g, "&gt;");

s = s.replace(/'/g, "&apos;");

s = s.replace(/"/g, "&quot;");

returns;

} ;

解码函数:

1

2

3

4

5

6

7

8

9

10

functionhtmlDecode(str){

vars = "";

if(str.length == 0) return"";

s = str.replace(/&amp;/g, "&");

s = s.replace(/&lt;/g, "<");

s = s.replace(/&gt;/g, ">");

s = s.replace(/&apos;/g, "'");

s = s.replace(/&quot;/g, "\"");

returns;

}

2、用浏览器内部转换器实现

1.实现html转码

1

2

3

4

5

6

7

8

9

10

htmlEncode:function(html){

//1.首先动态创建一个容器标签元素,如DIV

vartemp = document.createElement ("div");

//2.然后将要转换的字符串设置为这个元素的innerText(ie支持)或者textContent(火狐,google支持)

(temp.textContent != undefined ) ? (temp.textContent = html) : (temp.innerText = html);

//3.最后返回这个元素的innerHTML,即得到经过HTML编码转换的字符串了

varoutput = temp.innerHTML;

temp = null;

returnoutput;

}

2、实现html解码

1

2

3

4

5

6

7

8

9

10

htmlDecode:function(text){

//1.首先动态创建一个容器标签元素,如DIV

vartemp = document.createElement("div");

//2.然后将要转换的字符串设置为这个元素的innerHTML(ie,火狐,google都支持)

temp.innerHTML = text;

//3.最后返回这个元素的innerText(ie支持)或者textContent(火狐,google支持),即得到经过HTML解码的字符串了。

varoutput = temp.innerText || temp.textContent;

temp = null;

returnoutput;

},

本文转载自: https://www.jb51.net/article/249984.htm

常用在线小工具


CSS代码工具

JavaScript代码格式化工具

在线XML格式化/压缩工具

php代码在线格式化美化工具

sql代码在线格式化美化工具

在线HTML转义/反转义工具

在线JSON代码检验/检验/美化/格式化

JavaScript正则在线测试工具

在线生成二维码工具(加强版)

猜你喜欢

转载自blog.csdn.net/weixin_43883849/article/details/129235445
今日推荐