Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
80758 views
1
2
var hex = '0123456789abcdef'.split('');
3
4
module.exports = function stringEncode(input, opts) {
5
opts = opts || {};
6
var escaped = "";
7
8
for (var i = 0; i < input.length; i++) {
9
escaped = escaped + encodeChar(input.charAt(i), opts.preserveNewlines);
10
}
11
12
return escaped;
13
}
14
15
function encodeChar(inputChar, preserveNewlines) {
16
var character = inputChar.charAt(0);
17
var characterCode = inputChar.charCodeAt(0);
18
19
switch(character) {
20
case '\n':
21
if (!preserveNewlines) return "\\n";
22
else return character;
23
case '\r':
24
if (!preserveNewlines) return "\\r";
25
else return character;
26
case '\'': return "\\'";
27
case '"': return "\\\"";
28
case '\&': return "\\&";
29
case '\\': return "\\\\";
30
case '\t': return "\\t";
31
case '\b': return "\\b";
32
case '\f': return "\\f";
33
case '/': return "\\x2F";
34
case '<': return "\\x3C";
35
case '>': return "\\x3E";
36
}
37
38
if (characterCode > 127) {
39
var c = characterCode;
40
var a4 = c % 16;
41
c = ~~(c/16);
42
var a3 = c % 16;
43
c = ~~(c/16);
44
var a2 = c % 16;
45
c = ~~(c/16);
46
var a1 = c % 16;
47
48
return ["\\u", hex[a1], hex[a2], hex[a3], hex[a4]].join('');
49
} else {
50
return inputChar;
51
}
52
}
53
54