40 lines
920 B
Plaintext
40 lines
920 B
Plaintext
const _htmlEscape = string => string
|
|
.replace(/&/g, '&')
|
|
.replace(/"/g, '"')
|
|
.replace(/'/g, ''')
|
|
.replace(/</g, '<')
|
|
.replace(/>/g, '>');
|
|
|
|
const _htmlUnescape = htmlString => htmlString
|
|
.replace(/>/g, '>')
|
|
.replace(/</g, '<')
|
|
.replace(/�?39;/g, '\'')
|
|
.replace(/"/g, '"')
|
|
.replace(/&/g, '&');
|
|
|
|
export function htmlEscape(strings, ...values) {
|
|
if (typeof strings === 'string') {
|
|
return _htmlEscape(strings);
|
|
}
|
|
|
|
let output = strings[0];
|
|
for (const [index, value] of values.entries()) {
|
|
output = output + _htmlEscape(String(value)) + strings[index + 1];
|
|
}
|
|
|
|
return output;
|
|
}
|
|
|
|
export function htmlUnescape(strings, ...values) {
|
|
if (typeof strings === 'string') {
|
|
return _htmlUnescape(strings);
|
|
}
|
|
|
|
let output = strings[0];
|
|
for (const [index, value] of values.entries()) {
|
|
output = output + _htmlUnescape(String(value)) + strings[index + 1];
|
|
}
|
|
|
|
return output;
|
|
}
|