ホームページ >ウェブフロントエンド >jsチュートリアル >PHP の `htmlspecialchars()` と同等の JavaScript はありますか?

PHP の `htmlspecialchars()` と同等の JavaScript はありますか?

DDD
DDDオリジナル
2024-11-17 18:54:02193ブラウズ

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

PHP の htmlspecialchars に相当する JavaScript

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。