>  기사  >  웹 프론트엔드  >  JavaScript에서 HTML 특수 문자를 효과적으로 이스케이프하는 방법은 무엇입니까?

JavaScript에서 HTML 특수 문자를 효과적으로 이스케이프하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-22 09:54:14885검색

How to Effectively Escape HTML Special Characters in JavaScript?

PHP의 HtmlSpecialChars에 해당하는 JavaScript

PHP에서 htmlspecialchars 함수는 <, >와 같은 특수 문자를 인코딩하는 데 사용됩니다. 및 &를 HTML 엔터티로 변환합니다. 예를 들어 < 됩니다.

JavaScript에는 htmlspecialchars의 동작을 정확하게 복제하는 내장 함수가 없습니다. 가장 가까운 방법은 다음 단계를 수행하는 사용자 정의 함수를 사용하는 것입니다.

  1. &를 &로 바꾸세요.
  2. < <.
  3. 바꾸기 > with >.

  4. "를 "로 바꾸세요.
  5. '를 '로 바꾸세요.
  6. 이러한 함수의 가능한 구현 중 하나는 다음과 같습니다.

    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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.