javascript 처리 HTML 의 Encode (디 코딩) 와 Decode (디 코딩) 총 결
1. 브 라 우 저 내부 변환기 로 전환
1.1. 브 라 우 저 내부 변환기 로 html 디 코딩 실현
먼저 DIV 와 같은 용기 태그 요 소 를 동적 으로 만 든 다음 변환 할 문자열 을 이 요소 의 innerText (ie 지원) 나 textContent (불 여우, google 지원) 로 설정 하고 마지막 으로 이 요소 의 innerHTML 을 되 돌려 줍 니 다. 즉, HTML 인 코딩 을 통 해 변 환 된 문자열 을 얻 을 수 있 습 니 다.
1.2. 브 라 우 저 내부 변환기 로 html 디 코딩 실현
먼저 DIV 와 같은 용기 태그 요 소 를 동적 으로 만 든 다음 에 변환 할 문자열 을 이 요소 의 innerHTML (ie, 불 여우, google 모두 지원) 로 설정 하고 마지막 으로 이 요소 의 innerText (ie 지원) 나 textContent (불 여우, google 지원) 를 되 돌려 줍 니 다. 즉, HTML 디 코딩 을 거 친 문자열 을 얻 을 수 있 습 니 다.
1.3. 구체 적 인 실현 코드
1 var HtmlUtil = {
2 /*1. html */
3 htmlEncode:function (html){
4 //1. , DIV
5 var temp = document.createElement ("div");
6 //2. innerText(ie ) textContent( ,google )
7 (temp.textContent != undefined ) ? (temp.textContent = html) : (temp.innerText = html);
8 //3. innerHTML, HTML
9 var output = temp.innerHTML;
10 temp = null;
11 return output;
12 },
13 /*2. html */
14 htmlDecode:function (text){
15 //1. , DIV
16 var temp = document.createElement("div");
17 //2. innerHTML(ie, ,google )
18 temp.innerHTML = text;
19 //3. innerText(ie ) textContent( ,google ), HTML 。
20 var output = temp.innerText || temp.textContent;
21 temp = null;
22 return output;
23 }
24 };
테스트:
1 var html = "
aaaaaabbbb
";
2 var encodeHtml = HtmlUtil.htmlEncode(html);
3 alert("encodeHtml:" + encodeHtml);
4 var decodeHtml = HtmlUtil.htmlDecode(encodeHtml);
5 alert("decodeHtml:" + decodeHtml);
실행 결과:
2. 정규 표현 식 으로 변환 처리
정규 표현 식 을 사용 하 는 것 도 자주 사용 하 는 처리 방식 입 니 다. 실현 원 리 는 바로 교체 방식 으로 디 코딩 과 디 코딩 을 실현 하 는 것 입 니 다. 디 코딩 할 때 < >, 스페이스 바, &, ',' html 인 코딩 으로 바 꾸 면 디 코딩 은 html 인 코딩 을 대응 하 는 문자 로 바 꾸 고 코드 는 다음 과 같 습 니 다.
1 var HtmlUtil = {
2 /*1. html */
3 htmlEncodeByRegExp:function (str){
4 var s = "";
5 if(str.length == 0) return "";
6 s = str.replace(/&/g,"&");
7 s = s.replace(/);
8 s = s.replace(/>/g,">");
9 s = s.replace(/ /g," ");
10 s = s.replace(/\'/g,"'");
11 s = s.replace(/\"/g,""");
12 return s;
13 },
14 /*2. html */
15 htmlDecodeByRegExp:function (str){
16 var s = "";
17 if(str.length == 0) return "";
18 s = str.replace(/&/g,"&");
19 s = s.replace(/</g,");
20 s = s.replace(/>/g,">");
21 s = s.replace(/ /g," ");
22 s = s.replace(/'/g,"\'");
23 s = s.replace(/"/g,"\"");
24 return s;
25 }
26 };
테스트 코드:
1 var html = "
cccccaaaaa
";
2 var encodeHTML = HtmlUtil.htmlEncodeByRegExp(html);
3 alert(" html ,encodeHTML:" + encodeHTML);
4 var decodeHTML = HtmlUtil.htmlDecodeByRegExp(" html :" + encodeHTML);
5 alert(decodeHTML);
테스트 결과:
3. HtmlUtil 공구 류 패키지
두 가지 방식 으로 HtmlUtil 도구 류 를 밀봉 하여 개발 에 편리 하 게 사용 할 수 있 습 니 다. 전체 코드 는 다음 과 같 습 니 다.
1 var HtmlUtil = {
2 /*1. html */
3 htmlEncode:function (html){
4 //1. , DIV
5 var temp = document.createElement ("div");
6 //2. innerText(ie ) textContent( ,google )
7 (temp.textContent != undefined ) ? (temp.textContent = html) : (temp.innerText = html);
8 //3. innerHTML, HTML
9 var output = temp.innerHTML;
10 temp = null;
11 return output;
12 },
13 /*2. html */
14 htmlDecode:function (text){
15 //1. , DIV
16 var temp = document.createElement("div");
17 //2. innerHTML(ie, ,google )
18 temp.innerHTML = text;
19 //3. innerText(ie ) textContent( ,google ), HTML 。
20 var output = temp.innerText || temp.textContent;
21 temp = null;
22 return output;
23 },
24 /*3. html */
25 htmlEncodeByRegExp:function (str){
26 var s = "";
27 if(str.length == 0) return "";
28 s = str.replace(/&/g,"&");
29 s = s.replace(/);
30 s = s.replace(/>/g,">");
31 s = s.replace(/ /g," ");
32 s = s.replace(/\'/g,"'");
33 s = s.replace(/\"/g,""");
34 return s;
35 },
36 /*4. html */
37 htmlDecodeByRegExp:function (str){
38 var s = "";
39 if(str.length == 0) return "";
40 s = str.replace(/&/g,"&");
41 s = s.replace(/</g,");
42 s = s.replace(/>/g,">");
43 s = s.replace(/ /g," ");
44 s = s.replace(/'/g,"\'");
45 s = s.replace(/"/g,"\"");
46 return s;
47 }
48 };
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.