escapeHtml()
文字列内の HTML 特殊文字をエスケープします。
import { escapeHtml } from "@unifast/core";シグネチャ
function escapeHtml(str: string): stringパラメータ
str
| プロパティ | 型 | デフォルト | 説明 |
|---|---|---|---|
str | string | — | エスケープする文字を含む文字列 |
戻り値
string — 入力文字列内の &、<、>、" が対応する HTML エンティティに置き換えられた文字列です。
使い方
import { escapeHtml } from "@unifast/core";
const safe = escapeHtml('<script>alert("xss")</script>');
console.log(safe);
// <script>alert("xss")</script>使用例
基本的なエスケープ
import { escapeHtml } from "@unifast/core";
console.log(escapeHtml("Tom & Jerry"));
// Tom & Jerry
console.log(escapeHtml('class="main"'));
// class="main"
console.log(escapeHtml("1 < 2 > 0"));
// 1 < 2 > 0ユーザー生成コンテンツのエスケープ
import { escapeHtml } from "@unifast/core";
const userComment = '<img src=x onerror="alert(1)">';
const html = `<div class="comment"></div>`;
console.log(html);
// <div class="comment"><img src=x onerror="alert(1)"></div>安全な HTML 属性を組み立てる
import { escapeHtml } from "@unifast/core";
const title = 'He said "hello" & waved';
const html = `<span title="">Hover me</span>`;
console.log(html);
// <span title="He said "hello" & waved">Hover me</span>動作
&は&に置き換えられる<は<に置き換えられる>は>に置き換えられる"は"に置き換えられるその他の文字はそのまま残る