Home >Web Front-end >JS Tutorial >How to Achieve the Equivalent of PHP\'s htmlspecialchars in JavaScript?

How to Achieve the Equivalent of PHP\'s htmlspecialchars in JavaScript?

DDD
DDDOriginal
2024-12-03 02:06:13234browse

How to Achieve the Equivalent of PHP's htmlspecialchars in JavaScript?

JavaScript Equivalent to PHP's htmlspecialchars

In JavaScript, there is no built-in function directly analogous to PHP's htmlspecialchars for converting HTML special characters to character entities. However, there are custom solutions that can achieve a similar result.

Custom Implementation

One approach is to define a custom function that manually translates each special character. For instance:

function escapeHtml(text) {
  return text
      .replace(/&/g, "&")
      .replace(/</g, "<")
      .replace(/>/g, ">")
      .replace(/"/g, "&quot;")
      .replace(/'/g, "&apos;");
}

This function takes a string as input and replaces all occurrences of the following characters with their corresponding character entities:

  • & - &
  • < - <
    • >
  • " - "
  • ' - '
  • Improved Performance

    For better performance, especially with large texts, you can use a slightly optimized version:

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

    This version uses a lookup table to store the character entity mappings, which eliminates the need for multiple replace operations.

    The above is the detailed content of How to Achieve the Equivalent of PHP\'s htmlspecialchars in JavaScript?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn