首頁 >web前端 >js教程 >是否有與 PHP 的 `htmlspecialchars()` 等效的 JavaScript?

是否有與 PHP 的 `htmlspecialchars()` 等效的 JavaScript?

DDD
DDD原創
2024-11-17 18:54:02244瀏覽

Is There a JavaScript Equivalent to PHP's `htmlspecialchars()`?

JavaScript 等價於 PHP 的 htmlspecialchars

確定是否存在與 PHP 的 htmlspecialchars 等價的 JavaScript 函數可能是一個挑戰。然而,另一種方法是為此目的定義一個自訂函數。

HTML 字元轉義的自訂函數

雖然JavaScript 沒有專門提供內建函數對於HTML 字元轉義,以下自訂函數可以滿足此需求:

function escapeHtml(text) {
  return text
      .replace(/&/g, "&")
      .replace(/</g, "&amp;lt;")
      .replace(/>/g, "&amp;gt;")
      .replace(/&quot;/g, "&amp;quot;")
      .replace(/'/g, "&amp;#039;");
}

此函數接受字串作為輸入,並將以下特殊字元替換為其等效的HTML 字元實體:

  • & → &
  • → >
  • " → "
  • ' → '

性能優化

為了提高效能,特別是對於大文字區塊,可以使用該函數的以下修改版本:

function escapeHtml(text) {
  var map = {
    '&amp;': '&amp;amp;',
    '<': '&amp;lt;',
    '>': '&amp;gt;',
    '&quot;': '&amp;quot;',
    "'"': '&amp;#039;'
  };
  
  return text.replace(/[&amp;<>&quot;']/g, function(m) { return map[m]; });
}

此版本建立一個雜湊表(映射) 將特殊字元對應到其對應的實體,然後使用Replace() 方法執行替換。

以上是是否有與 PHP 的 `htmlspecialchars()` 等效的 JavaScript?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn