1. 程式人生 > >JS HTML轉義碼解碼

JS HTML轉義碼解碼

  • 背景:
    • JQ的html()函式得到網頁的html原始碼,而有時得到的文字中的中文會以HTML轉義碼的形式出現:如“轉發”被編碼成了“& #x8F6C;& #x53D1;”。(這裡&和#之間加了空格,否則會直接顯示為中文)
    • 而使用text()函式又會丟失網頁的元素資訊,所以想原生的保留網頁資訊只能進行手工解碼。
  • 原理:
    • 這種編碼方式使用的編碼為unicode,在&#和;之間的十六進位制數即為該字元的unicode編碼。
  • 造輪子:
    • String.fromCharCode()方法,該方法接受一個unicode值,返回該值代表的字元。
    • JS字串正則替換支援str.replace(reg, function(text){})的形式。
function decodeHtml(_str){
    var s = _str.replace(/&#x[\dA-F]{2,4};/g, function(_hex){
        return String.fromCharCode('0' + _hex.slice(2, -1));
    });
    return s;
}

原理都清楚了輪子也很簡單
nodejs測試通過

相關推薦

JS HTML轉義解碼

背景: JQ的html()函式得到網頁的html原始碼,而有時得到的文字中的中文會以HTML轉義碼的形式出現:如“轉發”被編碼成了“& #x8F6C;& #x53D1;”。(這裡&a

Sublime text 3 格式化HTML/css/js/json代 插件

快捷 ctrl+alt ctr install nbsp 重新 安裝 -c pack JsFormat: 這裏下載這插件包 https://github.com/sprinng/JsFormat ,點油下角的zip就能下載 插件包放到sublime安裝目錄的Data\P

zend studio13設置jshtml提示

ati col apt 為我 延遲 spa span 之前 使用 最近在學李炎恢的thinkphp,說要安裝一個aptana插件,死活找不到,官網的連接也失效了 後來發現zend studio13不用插件就可以設置代碼提示(怪不得網上總是搜不到關於aptana插件)

JS轉換HTML轉義

arr js轉換 clas console shtml spa mbr 轉義 var 今天在用wangeditor編輯器寫後臺管理文章頁,在保存文章後需要調用一次編輯草稿,這時候需要把編輯的內容拿到編輯器中,結果輸出了我的標簽:<p>您好</p>.經

js中嵌入jsp(html)代的雙引號轉換問題--事件沒反應

-s cancel btn log span pic fault pda eight 下面是一段今天遇到問題的代碼,select中寫了onchange事件 ,在沒有加轉義的情況下,F12解析的代碼是錯亂的,雙引號與內容中寫的不一致,還會有空格出現,經過一段時間的摸索,發現在

如何優雅的用js動態的添加html?

In nbsp key tro none esc 代碼 inner style 把想要的結構寫在HTML裏,用一個display:none的標簽來包裹。 一般而言,會使用: 不設置為type="text/javascript"的script標簽 textarea標

jshtml分離示例

RM request對象 失去焦點 html4 sans path 一個 字符串 mon 驗證用戶名是否存在的示例代碼引出該思想: <%@ page language="java" contentType="text/html; charset=UTF-8" p

js使用轉義符技巧輸出HTML

  有時候我們需要使用js輸出html程式碼,會涉及一些標籤、變數。 對於很長的html程式碼,為了讓js具有較好的可讀性,需要在js裡對html程式碼進行一定的拆分、拼接。 簡單明瞭版 通常我們這樣做 var div

HTML轉義以及防止JS注入攻擊

目的 這周在開發即時聊天的時候,發生存在JS注入攻擊的問題。如果使用者輸入了一段js指令碼。 例如: <script>alert('我進來了');</script> 頁面會彈出一個對話方塊,或者輸入的指令碼中有改變頁面js變數的程式碼則會時程式

HTML轉義字元防止js程式碼注入攻擊

什麼是js注入攻擊 有的時候頁面中會有一個輸入框,使用者輸入內容後會顯示在頁面中,類似於網頁聊天應用。如果使用者輸入了一段js指令碼,比例:,頁面會彈出一個對話方塊,或者輸入的指令碼中有改變頁面js變數的程式碼則會時程式異常或者達到跳過某種驗證的目的 什麼是ht

jAVA/JS解碼(URLEncoder.encode decodeURIComponent)

引用包:import java.net.URLDecoder; Java解碼: String s  = URLDecoder.decode(URLDecoder.decode(templateObj.getString("templateContent"), "UTF-8

js前端base64轉解碼

我們為什麼要用base base64是網路上最常見的用於傳輸8bit位元組程式碼的編碼方式之一。有時我們需要把二進位制資料編碼為適合放在URL中的形式。這時採用base64編碼具有不可讀性,即所編碼的資料不會被人直接看出。除此之外,還可以放在請求頭,響應頭進行傳輸。

js+css=html驗證驗證

var code ; //在全域性 定義驗證碼 function createCode() { code = ""; var codeLength = 6;//驗證碼的長度 var checkCod

用Javascript(js)進行HTML轉義工具(處理特殊字元顯示)

$package("js.lang"); // 沒有包管理時,也可簡單寫成 js = {lang:{}}; js.lang.String = function(){ this.REGX_HTML_ENCODE = /"|&|'|<|>|[\x00-\x20]|[\x7F-\xF

FreeMarker的Html轉義——防止JS注入

<!--  FreeMarker的Html轉義 測試:     1. ${getFormValue(item.title)} 無效 --> <a href="javaScript: openNewsDetail('${getFormV

js html 特殊字元轉義

function html_encode(str) { var s = ""; if (str.length == 0) return ""; s = str.replace(/&/g, "&"); s = s.

JS自動生成動態HTML驗證頁面,輸入錯誤自動清空輸入框

<html>     <head>         <title>驗證碼</title>         <meta charset="utf-8" />         <style type="text/

JS轉換HTML轉義符,防止javascript注入攻擊,親測可用

//去掉html標籤 1 2 3 function removeHtmlTab(tab) { return tab.replace(/<[^<>]+?>/g,'');//刪除所有HTML標籤 } //普通字元轉換

JS轉義HTML轉義

1、去掉html標籤 function removeHtmlTab(tab) { return tab.replace(/<[^<>]+?>/g,'');//刪除所有HTML標籤 } 2、普通字元轉換成轉意符 function html2Esc

(跨站漏洞轉義)JS及JQuery對Html內容編碼,Html轉義

原文 http://blog.csdn.net/phantomes/article/details/26570113 /** JQuery Html Encoding、Decoding * 原理是利用JQuery自帶的html()和text()函式可以轉義Html字元