JavaScript は、escape()、encodeURI()、decodeURI() を使用して URI エンコードとデコードを実装します。

この記事では、JavaScript で、escape()、encodeURI()、および decodeURI() を使用して URI エンコードとデコードを実装する方法をサンプル コードを通じて詳しく紹介します。みんなの勉強や仕事の参考になるので、困っている友達が参考にすることができます。

目次

1. URIのエンコードとデコード

1. 文字列のエンコードとデコード(消去)

このメソッドは ECMAScript v3 では非推奨となっており、代わりに decodeURI() および decodeURIComponent() を使用する必要があります。

1.escape(): 文字列をエンコードする

escape() は、ASCII 文字、数字、および特定の記号を除くすべての受信文字列をエスケープします。

構文: エスケープ(値);

1

2

3

varstr = "javascript hello";

varstr1 = エスケープ(str);

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

2. unecape():escape() 関数によってエンコードされた文字列をデコードします。

1

2

3

4

5

varstr = "javascript hello";

varstr1 = エスケープ(str);

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

varstr2 = unescape(str1);

alert(str2); //JavaScript hello をポップアップします

2. URI のエンコードとデコード

1. encodeURI(): URI 内のエスケープ文字

URI 内の有効な文字はエンコードされないため、encodeURI() は 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

2. 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, "<");

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

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

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

戻り値;

} ;

解码函数:

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