迁移聊天室前端工具并优化消息渲染
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
// 聊天室前端 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, "<br>");
|
||||
}
|
||||
Reference in New Issue
Block a user