HTML 標籤、轉義字符及相應的 Java 過濾方法

HTML 標籤

  • HTML 文檔和 HTML 元素是通過 HTML 標籤進行標記的
  • HTML 標籤由開始標籤和結束標籤組成
  • 開始標籤是被括號包圍的元素名
  • 結束標籤是被括號包圍的斜槓和元素名
  • 某些 HTML 元素沒有結束標籤,比如 <br />

註釋:開始標籤的英文翻譯是 start tagopening tag,結束標籤的英文翻譯是 end tagclosing tag

HTML 轉義字符

一些字符在 HTML 中擁有特殊的含義,比如小於號 (<) 用於定義 HTML 標籤的開始。如果我們希望瀏覽器正確地顯示這些字符,我們必須在 HTML 源碼中插入字符實體

字符實體有三部分:一個和號 (&),一個實體名稱,或者 # 和一個實體編號,以及一個分號 (;)。

要在 HTML 文檔中顯示小於號,我們需要這樣寫:&lt; 或者 &#60;

使用實體名稱而不是實體編號的好處在於,名稱相對來說更容易記憶。而這麼做的壞處是,並不是所有的瀏覽器都支持最新的實體名稱,然而幾乎所有的瀏覽器對實體編號的支持都很好。

注意:實體對大小寫敏感。
詳見HTML 轉義字符

JavaScript 轉義符

轉義序列 字符
\b 退格
\f 換頁
\n 換行
\r 回車
\t 橫向跳格(Ctrl-I)
單引號
" 雙引號
\\ 反斜槓

Java 過濾標籤及轉義字符

HTML 標籤過濾

正則表達式過濾

String txtcontent = content.replaceAll("</?[^>]+>", "");

HTML 轉義字符過濾

org.apache.commons.lang3.StringEscapeUtils

String txtcontent = StringEscapeUtils.unescapeHtml4(content);

對於更復雜的需求,可考慮選用Jsoup提取相應的數據

Jsoup 是一個用於處理 HTML 的 Java 庫。它提供了一些非常方便的 API,通過使用最好的 DOM,CSS 和類 jquery 的方法,以提取和操作數據。

JavaScript 轉義符過濾

過濾換行符

String txtcontent = content.replaceAll("\n", "");

過濾所有

String txtcontent = content.replaceAll("\\s*", "");

參考資料:

  1. HTML 轉義字符
  2. Jsoup
  3. jsoup Cookbook
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章