JS轉換HTML轉義符,編碼及解碼


JS轉換HTML轉義符

//去掉html標簽

function removeHtmlTab(tab) {
 return tab.replace(/<[^<>]+?>/g,'');//刪除所有HTML標簽
}

 

//普通字符轉換成轉意符

function html2Escape(sHtml) {
 return sHtml.replace(/[<>&"]/g,function(c){return {'<':'&lt;','>':'&gt;','&':'&amp;','"':'&quot;'}[c];});
}

 

//轉意符換成普通字符

function escape2Html(str) {
 var arrEntities={'lt':'<','gt':'>','nbsp':' ','amp':'&','quot':'"'};
 return str.replace(/&(lt|gt|nbsp|amp|quot);/ig,function(all,t){return arrEntities[t];});
}

 

//  轉成空格

function nbsp2Space(str) {
 var arrEntities = {'nbsp' : ' '};
 return str.replace(/&(nbsp);/ig, function(all, t){return arrEntities[t]})
}

 

//回車轉為br標簽

function return2Br(str) {
 return str.replace(/\r?\n/g,"<br />");
}

 

//去除開頭結尾換行,並將連續3次以上換行轉換成2次換行

function trimBr(str) {
 str=str.replace(/((\s|&nbsp;)*\r?\n){3,}/g,"\r\n\r\n");//限制最多2次換行
 str=str.replace(/^((\s|&nbsp;)*\r?\n)+/g,'');//清除開頭換行
 str=str.replace(/((\s|&nbsp;)*\r?\n)+$/g,'');//清除結尾換行
 return str;
}

 

// 將多個連續空格合並成一個空格

function mergeSpace(str) {
 str=str.replace(/(\s|&nbsp;)+/g,' ');
 return str;
}

 

JS編碼解碼 
一、定義和用法 
encodeURI() 函數可把字符串作為 URI 進行編碼。

語法 
encodeURI(URIstring) 
參數 描述 
URIstring 必需。一個字符串,含有 URI 或其他要編碼的文本。 
返回值 
URIstring 的副本,其中的某些字符將被十六進制的轉義序列進行替換。

說明 
該方法不會對 ASCII 字母和數字進行編碼,也不會對這些 ASCII 標點符號進行編碼: - _ . ! ~ * ’ ( ) 。

該方法的目的是對 URI 進行完整的編碼,因此對以下在 URI 中具有特殊含義的 ASCII 標點符號,encodeURI() 函數是不會進行轉義的:;/?:@&=+$,#

提示和注釋 
提示:如果 URI 組件中含有分隔符,比如 ? 和 #,則應當使用 encodeURIComponent() 方法分別對各組件進行編碼。

此方法的解碼為decodeURI()

二、定義和用法

escape() 函數可對字符串進行編碼,這樣就可以在所有的計算機上讀取該字符串。

語法 
escape(string) 
參數 描述 
string 必需。要被轉義或編碼的字符串。 
返回值 
已編碼的 string 的副本。其中某些字符被替換成了十六進制的轉義序列。

說明 
該方法不會對 ASCII 字母和數字進行編碼,也不會對下面這些 ASCII 標點符號進行編碼: - _ . ! ~ * ’ ( ) 。其他所有的字符都會被轉義序列替換。

提示和注釋 
提示:可以使用 unescape() 對 escape() 編碼的字符串進行解碼。

注釋:ECMAScript v3 反對使用該方法,應用使用 decodeURI() 和 decodeURIComponent() 替代它。

三、JavaScript encodeURIComponent() 函數

定義和用法 
encodeURIComponent() 函數可把字符串作為 URI 組件進行編碼。

語法 
encodeURIComponent(URIstring) 
參數 描述 
URIstring 必需。一個字符串,含有 URI 組件或其他要編碼的文本。 
返回值 
URIstring 的副本,其中的某些字符將被十六進制的轉義序列進行替換。

說明 
該方法不會對 ASCII 字母和數字進行編碼,也不會對這些 ASCII 標點符號進行編碼: - _ . ! ~ * ’ ( ) 。

其他字符(比如 :;/?:@&=+$,# 這些用於分隔 URI 組件的標點符號),都是由一個或多個十六進制的轉義序列替換的。

提示和注釋 
提示:請注意 encodeURIComponent() 函數 與 encodeURI() 函數的區別之處,前者假定它的參數是 URI 的一部分(比如協議、主機名、路徑或查詢字符串)。因此 encodeURIComponent() 函數將轉義用於分隔 URI 各個部分的標點符號。 
此方法解碼方式decodeURIComponent

不懂的通知可以查看一張圖看懂encodeURI、encodeURIComponent、decodeURI、decodeURIComponent的區別

轉自:

https://blog.csdn.net/wbbott/article/details/79074184


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM