18 lines
764 B
JavaScript
18 lines
764 B
JavaScript
/**
|
|
* Экранирует текст перед вставкой в HTML-шаблон, собираемый через innerHTML.
|
|
*
|
|
* @param {*} value Имя файла, путь или сообщение статуса.
|
|
* @returns {string} Строка с заменёнными HTML-значимыми символами.
|
|
*
|
|
* Экранируются и кавычки, потому что значение может попасть не только в текст
|
|
* кнопки, но и в HTML-атрибут вроде data-path или aria-label.
|
|
*/
|
|
export function esc(value) {
|
|
return String(value).replace(/[&<>"']/g, (character) => ({
|
|
'&': '&',
|
|
'<': '<',
|
|
'>': '>',
|
|
'"': '"',
|
|
"'": ''',
|
|
}[character]));
|
|
} |