// 聊天室前端 HTML 安全工具,供 Blade 内联脚本迁移到 Vite 后复用。 const HTML_ESCAPE_MAP = { "&": "&", "<": "<", ">": ">", '"': """, "'": "'", }; /** * 转义可被拼入 innerHTML 的动态文本。 * * @param {unknown} value * @returns {string} */ export function escapeHtml(value) { return String(value ?? "").replace(/[&<>"']/g, (char) => HTML_ESCAPE_MAP[char]); } /** * 转义多行文本,并保留换行展示。 * * @param {unknown} value * @returns {string} */ export function escapeHtmlWithLineBreaks(value) { return escapeHtml(value).replace(/\n/g, "
"); }