將HTML特殊轉義為實體字元的兩種實現方式

2021-06-16 18:49:13 字數 1068 閱讀 7562

前端開發工作中,經常需要將html的左右尖括號等轉義成實體形式。我們不能把<,>,&等直接顯示在最終看到的網頁裡。需要將其轉義後才能在網頁上顯示。

轉義字元(escape sequence)也稱字元實體(character entity)。定義轉義字串的主要原因是

「<」和「>」等符號已經用來表示html tag,因此不能直接當作文字中的符號來使用。但有時需求是在html頁面上使用這些符號,所以需要定義它的轉義字串。

這裡提供兩個函式escape和unescape,分別實現將html轉義為實體和迴轉。

var keys = object.keys || function(obj) 

var invert = function(obj)

for (var a in obj) result[obj[a]] = a

return result

}var entitymap =

}entitymap.unescape = invert(entitymap.escape)

var entityreg =

// 將html轉義為實體

function escape(html) )

}// 將實體轉回為html

function unescape(str) )

}

// 將html轉義為實體

function escape(html)

// 將實體轉回為html

function unescape(str)

有個缺陷是只能轉義「< > & 」,對於單引號,雙引號都不轉義。另外一些非ascii也不能轉義。選擇時須注意。

比較:方式1**量較大,但靈活性,完整性都比方式2強。可根據需求新增或減少對映表entitymap,且可以執行在任意js環境中。

方式2 為hack方式,**量少很多,利用瀏覽器內部api就行了轉義和轉回(主流瀏覽器都支援)。不具完整性,很明顯只能在瀏覽器環境中使用(比如不能在node.js中跑)。

將HTML特殊轉義為實體字元的兩種實現方式

前端開發工作中,經常需要將html的左右尖括號等轉義成實體形式。我們不能把 等直接顯示在最終看到的網頁裡。需要將其轉義後才能在網頁上顯示。轉義字元 escape sequence 也稱字元實體 character entity 定義轉義字串的主要原因是 和 等符號已經用來表示html tag,因此不...

將HTML特殊轉義為實體字元的兩種實現方式

前端開發工作中,經常需要將html的左右尖括號等轉義成實體形式。我們不能把 等直接顯示在最終看到的網頁裡。需要將其轉義後才能在網頁上顯示。轉義字元 escape sequence 也稱字元實體 character entity 定義轉義字串的主要原因是 和 等符號已經用來表示html tag,因此不...

HTML特殊轉義字元列表

顯示 說明實體名稱 實體編號 半方大的空白 全方大的空白 不斷行的空白格 小於 大於 符號 雙引號 版權 已註冊商標 商標 美國 乘號 除號 html 4.01 支援 iso 8859 1 latin 1 字符集。備註 為了方便起見,以下 中,實體名稱 簡稱為 名稱 實體編號 簡稱為 編號 顯示名稱...