UNPKG

657 BJavaScriptView Raw
1'use strict';
2/**
3 * sanitize module
4 * @module sanitize
5 * @see module:index
6 */
7const lang = require('zero-lang');
8
9const chars = {
10 '&': '&',
11 '<': '&lt;',
12 '>': '&gt;',
13};
14function escapeRegExp(string) {
15 return string.replace(/([.*+?^=!:${}()|[\]/\\])/g, '\\$1');
16}
17
18module.exports = (str, reverse) => {
19 if (!lang.isString(str)) return str;
20
21 let result = str;
22 lang.forIn(chars, (value, key) => {
23 if (reverse) {
24 result = result.replace(new RegExp(escapeRegExp(value), 'g'), key);
25 } else {
26 result = result.replace(new RegExp(escapeRegExp(key), 'g'), value);
27 }
28 });
29 return result;
30};