본문 바로가기
두번째 프로젝트 이야기/webapp-ui-*.html

textarea 입력창에 <를 입력하면 &lt출력안되게

by @ENFJ 2023. 10. 25.

<textarea> 입력 창에 < 문자를 입력하면 브라우저가 기본적으로 HTML 코드를 렌더링하지 않고 그대로 텍스트로 처리합니다. 따라서 특별한 처리나 이스케이프는 필요하지 않습니다. 사용자가 <를 입력하면 그 문자 그대로 출력될 것입니다.

다음과 같이 <textarea>를 사용하여 < 문자를 입력할 수 있습니다:

<!DOCTYPE html>
<html>
<head>
  <title>Textarea 예시</title>
  <script>
    function escapeHTML(input) {
      var textarea = document.createElement("textarea");
      textarea.textContent = input;
      return textarea.value;
    }

    function handleInput() {
      var userInput = document.getElementById("userInput").value;
      var escapedInput = escapeHTML(userInput);
      document.getElementById("output").textContent = escapedInput;
    }
  </script>
</head>
<body>
  <textarea id="userInput" oninput="handleInput()"></textarea>
  <p id="output"></p>
</body>
</html>

위의 코드에서 사용자가 <textarea>에 입력한 내용은 HTML 코드로 처리되지 않고 일반 텍스트로 출력됩니다. 사용자가 직접 < 문자를 입력해도 안전하게 출력됩니다.