ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript で HTML 特殊文字を効果的にエスケープする方法

JavaScript で HTML 特殊文字を効果的にエスケープする方法

Linda Hamilton
リリース: 2024-11-22 09:54:14
オリジナル
938 人が閲覧しました

How to Effectively Escape HTML Special Characters in JavaScript?

PHP の HtmlSpecialChars と同等の JavaScript

PHP では、htmlspecialchars 関数を使用して、<、> などの特殊文字をエンコードします。 & を HTML エンティティに変換します。たとえば、

JavaScript には、htmlspecialchars の動作を正確に再現する組み込み関数がありません。これに最も近いのは、次の手順を実行するカスタム関数を使用することです。

  1. & を & に置き換えます。
  2. < を置き換えます。
  3. 置換 > >.
  4. " を " に置き換えます。
  5. ' を ' に置き換えます。

このような関数の実装例の 1 つは次のとおりです。

function escapeHtml(text) {
  return text
      .replace(/&amp;/g, "&amp;amp;")
      .replace(/</g, "&amp;lt;")
      .replace(/>/g, "&amp;gt;")
      .replace(/&quot;/g, "&amp;quot;")
      .replace(/'/g, "&amp;#039;");
}
ログイン後にコピー

この関数は、指定された特殊文字の出現をすべてエスケープします。ただし、次のことが重要です。たとえば、URL 内のスペースを表すために使用できる「 」文字はエスケープされないことに注意してください。

特に大きなテキスト ブロックの場合、パフォーマンスを向上させるには、次のようにします。ルックアップ テーブル アプローチを使用できます。

function escapeHtml(text) {
  var map = {
    '&': '&amp;',
    '<': '<',
    '>': '>',
    '"': '&quot;',
    "'": '&amp;#039;'
  };
  
  return text.replace(/[&<>"']/g, function(m) { return map[m]; });
}
ログイン後にコピー

このアプローチにより、必要な文字列操作の量が減り、パフォーマンスが向上します。

以上がJavaScript で HTML 特殊文字を効果的にエスケープする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート