aswi2020vldc-gitlab/templetes/node_modules/html-entities/lib/html4-entities.js @ 5fded919
1 | 3a515b92 | cagy | var HTML_ALPHA = ['apos', 'nbsp', 'iexcl', 'cent', 'pound', 'curren', 'yen', 'brvbar', 'sect', 'uml', 'copy', 'ordf', 'laquo', 'not', 'shy', 'reg', 'macr', 'deg', 'plusmn', 'sup2', 'sup3', 'acute', 'micro', 'para', 'middot', 'cedil', 'sup1', 'ordm', 'raquo', 'frac14', 'frac12', 'frac34', 'iquest', 'Agrave', 'Aacute', 'Acirc', 'Atilde', 'Auml', 'Aring', 'Aelig', 'Ccedil', 'Egrave', 'Eacute', 'Ecirc', 'Euml', 'Igrave', 'Iacute', 'Icirc', 'Iuml', 'ETH', 'Ntilde', 'Ograve', 'Oacute', 'Ocirc', 'Otilde', 'Ouml', 'times', 'Oslash', 'Ugrave', 'Uacute', 'Ucirc', 'Uuml', 'Yacute', 'THORN', 'szlig', 'agrave', 'aacute', 'acirc', 'atilde', 'auml', 'aring', 'aelig', 'ccedil', 'egrave', 'eacute', 'ecirc', 'euml', 'igrave', 'iacute', 'icirc', 'iuml', 'eth', 'ntilde', 'ograve', 'oacute', 'ocirc', 'otilde', 'ouml', 'divide', 'oslash', 'ugrave', 'uacute', 'ucirc', 'uuml', 'yacute', 'thorn', 'yuml', 'quot', 'amp', 'lt', 'gt', 'OElig', 'oelig', 'Scaron', 'scaron', 'Yuml', 'circ', 'tilde', 'ensp', 'emsp', 'thinsp', 'zwnj', 'zwj', 'lrm', 'rlm', 'ndash', 'mdash', 'lsquo', 'rsquo', 'sbquo', 'ldquo', 'rdquo', 'bdquo', 'dagger', 'Dagger', 'permil', 'lsaquo', 'rsaquo', 'euro', 'fnof', 'Alpha', 'Beta', 'Gamma', 'Delta', 'Epsilon', 'Zeta', 'Eta', 'Theta', 'Iota', 'Kappa', 'Lambda', 'Mu', 'Nu', 'Xi', 'Omicron', 'Pi', 'Rho', 'Sigma', 'Tau', 'Upsilon', 'Phi', 'Chi', 'Psi', 'Omega', 'alpha', 'beta', 'gamma', 'delta', 'epsilon', 'zeta', 'eta', 'theta', 'iota', 'kappa', 'lambda', 'mu', 'nu', 'xi', 'omicron', 'pi', 'rho', 'sigmaf', 'sigma', 'tau', 'upsilon', 'phi', 'chi', 'psi', 'omega', 'thetasym', 'upsih', 'piv', 'bull', 'hellip', 'prime', 'Prime', 'oline', 'frasl', 'weierp', 'image', 'real', 'trade', 'alefsym', 'larr', 'uarr', 'rarr', 'darr', 'harr', 'crarr', 'lArr', 'uArr', 'rArr', 'dArr', 'hArr', 'forall', 'part', 'exist', 'empty', 'nabla', 'isin', 'notin', 'ni', 'prod', 'sum', 'minus', 'lowast', 'radic', 'prop', 'infin', 'ang', 'and', 'or', 'cap', 'cup', 'int', 'there4', 'sim', 'cong', 'asymp', 'ne', 'equiv', 'le', 'ge', 'sub', 'sup', 'nsub', 'sube', 'supe', 'oplus', 'otimes', 'perp', 'sdot', 'lceil', 'rceil', 'lfloor', 'rfloor', 'lang', 'rang', 'loz', 'spades', 'clubs', 'hearts', 'diams']; |
---|---|---|---|
2 | var HTML_CODES = [39, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 34, 38, 60, 62, 338, 339, 352, 353, 376, 710, 732, 8194, 8195, 8201, 8204, 8205, 8206, 8207, 8211, 8212, 8216, 8217, 8218, 8220, 8221, 8222, 8224, 8225, 8240, 8249, 8250, 8364, 402, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 977, 978, 982, 8226, 8230, 8242, 8243, 8254, 8260, 8472, 8465, 8476, 8482, 8501, 8592, 8593, 8594, 8595, 8596, 8629, 8656, 8657, 8658, 8659, 8660, 8704, 8706, 8707, 8709, 8711, 8712, 8713, 8715, 8719, 8721, 8722, 8727, 8730, 8733, 8734, 8736, 8743, 8744, 8745, 8746, 8747, 8756, 8764, 8773, 8776, 8800, 8801, 8804, 8805, 8834, 8835, 8836, 8838, 8839, 8853, 8855, 8869, 8901, 8968, 8969, 8970, 8971, 9001, 9002, 9674, 9824, 9827, 9829, 9830]; |
||
3 | |||
4 | var alphaIndex = {}; |
||
5 | var numIndex = {}; |
||
6 | |||
7 | var i = 0; |
||
8 | var length = HTML_ALPHA.length; |
||
9 | while (i < length) { |
||
10 | var a = HTML_ALPHA[i]; |
||
11 | var c = HTML_CODES[i]; |
||
12 | alphaIndex[a] = String.fromCharCode(c); |
||
13 | numIndex[c] = a; |
||
14 | i++; |
||
15 | }
|
||
16 | |||
17 | /**
|
||
18 | * @constructor
|
||
19 | */
|
||
20 | function Html4Entities() {} |
||
21 | |||
22 | /**
|
||
23 | * @param {String} str
|
||
24 | * @returns {String}
|
||
25 | */
|
||
26 | Html4Entities.prototype.decode = function(str) { |
||
27 | if (!str || !str.length) { |
||
28 | return ''; |
||
29 | }
|
||
30 | return str.replace(/&(#?[\w\d]+);?/g, function(s, entity) { |
||
31 | var chr; |
||
32 | if (entity.charAt(0) === "#") { |
||
33 | var code = entity.charAt(1).toLowerCase() === 'x' ? |
||
34 | parseInt(entity.substr(2), 16) : |
||
35 | parseInt(entity.substr(1)); |
||
36 | |||
37 | if (!(isNaN(code) || code < -32768 || code > 65535)) { |
||
38 | chr = String.fromCharCode(code); |
||
39 | }
|
||
40 | } else { |
||
41 | chr = alphaIndex[entity]; |
||
42 | }
|
||
43 | return chr || s; |
||
44 | });
|
||
45 | };
|
||
46 | |||
47 | /**
|
||
48 | * @param {String} str
|
||
49 | * @returns {String}
|
||
50 | */
|
||
51 | Html4Entities.decode = function(str) { |
||
52 | return new Html4Entities().decode(str); |
||
53 | };
|
||
54 | |||
55 | /**
|
||
56 | * @param {String} str
|
||
57 | * @returns {String}
|
||
58 | */
|
||
59 | Html4Entities.prototype.encode = function(str) { |
||
60 | if (!str || !str.length) { |
||
61 | return ''; |
||
62 | }
|
||
63 | var strLength = str.length; |
||
64 | var result = ''; |
||
65 | var i = 0; |
||
66 | while (i < strLength) { |
||
67 | var alpha = numIndex[str.charCodeAt(i)]; |
||
68 | result += alpha ? "&" + alpha + ";" : str.charAt(i); |
||
69 | i++; |
||
70 | }
|
||
71 | return result; |
||
72 | };
|
||
73 | |||
74 | /**
|
||
75 | * @param {String} str
|
||
76 | * @returns {String}
|
||
77 | */
|
||
78 | Html4Entities.encode = function(str) { |
||
79 | return new Html4Entities().encode(str); |
||
80 | };
|
||
81 | |||
82 | /**
|
||
83 | * @param {String} str
|
||
84 | * @returns {String}
|
||
85 | */
|
||
86 | Html4Entities.prototype.encodeNonUTF = function(str) { |
||
87 | if (!str || !str.length) { |
||
88 | return ''; |
||
89 | }
|
||
90 | var strLength = str.length; |
||
91 | var result = ''; |
||
92 | var i = 0; |
||
93 | while (i < strLength) { |
||
94 | var cc = str.charCodeAt(i); |
||
95 | var alpha = numIndex[cc]; |
||
96 | if (alpha) { |
||
97 | result += "&" + alpha + ";"; |
||
98 | } else if (cc < 32 || cc > 126) { |
||
99 | result += "&#" + cc + ";"; |
||
100 | } else { |
||
101 | result += str.charAt(i); |
||
102 | }
|
||
103 | i++; |
||
104 | }
|
||
105 | return result; |
||
106 | };
|
||
107 | |||
108 | /**
|
||
109 | * @param {String} str
|
||
110 | * @returns {String}
|
||
111 | */
|
||
112 | Html4Entities.encodeNonUTF = function(str) { |
||
113 | return new Html4Entities().encodeNonUTF(str); |
||
114 | };
|
||
115 | |||
116 | /**
|
||
117 | * @param {String} str
|
||
118 | * @returns {String}
|
||
119 | */
|
||
120 | Html4Entities.prototype.encodeNonASCII = function(str) { |
||
121 | if (!str || !str.length) { |
||
122 | return ''; |
||
123 | }
|
||
124 | var strLength = str.length; |
||
125 | var result = ''; |
||
126 | var i = 0; |
||
127 | while (i < strLength) { |
||
128 | var c = str.charCodeAt(i); |
||
129 | if (c <= 255) { |
||
130 | result += str[i++]; |
||
131 | continue; |
||
132 | }
|
||
133 | result += '&#' + c + ';'; |
||
134 | i++; |
||
135 | }
|
||
136 | return result; |
||
137 | };
|
||
138 | |||
139 | /**
|
||
140 | * @param {String} str
|
||
141 | * @returns {String}
|
||
142 | */
|
||
143 | Html4Entities.encodeNonASCII = function(str) { |
||
144 | return new Html4Entities().encodeNonASCII(str); |
||
145 | };
|
||
146 | |||
147 | module.exports = Html4Entities; |