1 | 'use strict';
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 | const lang = require('zero-lang');
|
8 |
|
9 | const chars = {
|
10 | '&': '&',
|
11 | '<': '<',
|
12 | '>': '>',
|
13 | };
|
14 | function escapeRegExp(string) {
|
15 | return string.replace(/([.*+?^=!:${}()|[\]/\\])/g, '\\$1');
|
16 | }
|
17 |
|
18 | module.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 | };
|