Heim  >  Artikel  >  Web-Frontend  >  Gibt es ein JavaScript-Äquivalent zu PHPs „htmlspecialchars()'?

Gibt es ein JavaScript-Äquivalent zu PHPs „htmlspecialchars()'?

DDD
DDDOriginal
2024-11-17 18:54:02178Durchsuche

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

JavaScript-Äquivalent zu den htmlspecialchars von PHP

Die Feststellung, ob es eine JavaScript-Funktion gibt, die den htmlspecialchars von PHP entspricht, kann eine Herausforderung sein. Ein alternativer Ansatz besteht jedoch darin, für diesen Zweck eine benutzerdefinierte Funktion zu definieren.

Benutzerdefinierte Funktion für HTML-Zeichen-Escapezeichen

Während JavaScript keine spezielle integrierte Funktion bereitstellt Für die HTML-Zeichen-Escape-Funktion kann die folgende benutzerdefinierte Funktion diesen Bedarf erfüllen:

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

Diese Funktion akzeptiert eine Zeichenfolge als Eingabe und ersetzt die folgenden Sonderzeichen durch ihre HTML-Zeichenentitätsäquivalente:

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

Leistungsoptimierung

Für eine verbesserte Leistung, insbesondere bei großen Textblöcken, kann die folgende modifizierte Version der Funktion verwendet werden:

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]; });
}

Diese Version erstellt eine Hashtabelle (map ), um Sonderzeichen den entsprechenden Entitäten zuzuordnen, und verwendet dann die Methode replace(), um die Ersetzungen durchzuführen.

Das obige ist der detaillierte Inhalt vonGibt es ein JavaScript-Äquivalent zu PHPs „htmlspecialchars()'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn