42 lines
927 B
JavaScript
42 lines
927 B
JavaScript
'use strict';
|
|
|
|
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, '&');
|
|
|
|
exports.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;
|
|
};
|
|
|
|
exports.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;
|
|
};
|