JavaScript で HTML 文字をエスケープする例

Muhammad Muzammil Hussain 2023年10月12日
  1. JavaScript で HTML 文字列のエスケープ方法の例
  2. JavaScript で HTML 文字をエスケープする別の方法
JavaScript で HTML 文字をエスケープする例

JavaScript を使用して HTML 特殊文字を必須文字に置き換える組み込みメソッドはありません。通常、カスタム関数を呼び出してその機能を実現し、HTML の事前定義および予約された特殊文字をエスケープします。この記事では、カスタム宣言された関数によって JavaScript を使用してこれらの文字を無視する複数の例について説明します。

JavaScript で HTML 文字列のエスケープ方法の例

以下の HTML ソースコードは、実行時にユーザーから任意の文字列値を取得するためのプレースホルダー付きの From 入力タイプのテキストを示しています。値の挿入中に、フォーム入力のイベントリスナーでカスタム宣言された関数を呼び出します。この関数は、言及された文字を別の指定された文字に変更し、最終的に結果を返します。

変換されたユーザー指定の文字列の結果をブラウザコンソールに表示します。

<!DOCTYPE html>
<html>
 
<head>
    <title>
        HTML | Escape HTML Special Chars
    </title>
 
    <script type="text/javascript">
    </script>
 
</head>
<body>
 
  <h2>Hi Users Check Escape of HTML Special Chars.</h2>
<Form>
<input style='width:90%; padding:6px;' placeholder='Enter Text With HTML Chars'>
</Form>

<script>
    //function to ignore OR escape HTML chars
const escapeHtmlChars = (unsafe) => {
    return unsafe.replaceAll('&', '').replaceAll('<', '').replaceAll('>', '').replaceAll('"', '').replaceAll("'", '');
}

// Escape while typing & print result in console
document.querySelector('input').addEventListener('input', e => {
  console.clear();
  console.log( escapeHtmlChars(e.target.value));
});
</script>
 
</body>
<html>

この HTML ページのソースでは、Web ページの実行時にユーザーから文字列値を取得するためのフォーム入力タイプのテキストを作成しました。

const 型関数 escapeHtmlChars(string) を見ると、HTML の特殊文字をエスケープして、ユーザーが指定した文字列を変換できます。

そのメソッドの本体では、JavaScript replaceAll(value1,value2) メソッドを使用して、最初の value1 を 2 番目の value2 に置き換えました。

ご存知のとおり、HTML の特殊文字をエスケープしようとしていたので、最初の値に特殊文字(置換する)を渡し、2 番目の値に空の文字列""を渡しました。

上記のように、文字列に対して replaceAll() メソッドを複数回使用すると、変換された文字列も返されます。

document.querySelector('input').addEventListener() のリスナーで escapeHtmlChars() 関数を呼び出しました。ユーザーが入力フォームに値を入力または変更すると、自動的にトリガーされます。

console.log() で関数を呼び出して、ブラウザの検査で戻り値を表示しました。

Web ページにフォーム入力を表示し、HTML 特殊文字を含む文字列を挿入して、コンソールタブに出力を表示するだけです。

JavaScript で HTML 文字をエスケープする別の方法

document.createTextNode(html) を使用して同じ機能を実現することもできます。新しい Text ノードを作成します。このメソッドは、文字列を含む文字を関数に渡すことにより、HTML 文字をエスケープするために使用できます。

次に、appendChild(text) を使用して、変換されたテキストを変数に追加します

function escapeChars(html) {
  var text = document.createTextNode(html);
  var p = document.createElement('p');
  p.appendChild(text);
  return p.innerHTML;
}

別のメソッド escapeChars(html) を使用してテキストを変換し、replace() メソッドを使用せずに結果を返しました。