root / HServer / 00.Server / 00.Program / node_modules / escape-html / index.js
이력 | 보기 | 이력해설 | 다운로드 (1.33 KB)
1 |
/*!
|
---|---|
2 |
* escape-html
|
3 |
* Copyright(c) 2012-2013 TJ Holowaychuk
|
4 |
* Copyright(c) 2015 Andreas Lubbe
|
5 |
* Copyright(c) 2015 Tiancheng "Timothy" Gu
|
6 |
* MIT Licensed
|
7 |
*/
|
8 | |
9 |
'use strict';
|
10 | |
11 |
/**
|
12 |
* Module variables.
|
13 |
* @private
|
14 |
*/
|
15 | |
16 |
var matchHtmlRegExp = /["'&<>]/; |
17 | |
18 |
/**
|
19 |
* Module exports.
|
20 |
* @public
|
21 |
*/
|
22 | |
23 |
module.exports = escapeHtml; |
24 | |
25 |
/**
|
26 |
* Escape special characters in the given string of html.
|
27 |
*
|
28 |
* @param {string} string The string to escape for inserting into HTML
|
29 |
* @return {string}
|
30 |
* @public
|
31 |
*/
|
32 | |
33 |
function escapeHtml(string) { |
34 |
var str = '' + string; |
35 |
var match = matchHtmlRegExp.exec(str);
|
36 | |
37 |
if (!match) {
|
38 |
return str;
|
39 |
} |
40 | |
41 |
var escape;
|
42 |
var html = ''; |
43 |
var index = 0; |
44 |
var lastIndex = 0; |
45 | |
46 |
for (index = match.index; index < str.length; index++) {
|
47 |
switch (str.charCodeAt(index)) {
|
48 |
case 34: // " |
49 |
escape = '"';
|
50 |
break;
|
51 |
case 38: // & |
52 |
escape = '&';
|
53 |
break;
|
54 |
case 39: // ' |
55 |
escape = ''';
|
56 |
break;
|
57 |
case 60: // < |
58 |
escape = '<';
|
59 |
break;
|
60 |
case 62: // > |
61 |
escape = '>';
|
62 |
break;
|
63 |
default:
|
64 |
continue;
|
65 |
} |
66 | |
67 |
if (lastIndex !== index) {
|
68 |
html += str.substring(lastIndex, index); |
69 |
} |
70 | |
71 |
lastIndex = index + 1;
|
72 |
html += escape; |
73 |
} |
74 | |
75 |
return lastIndex !== index
|
76 |
? html + str.substring(lastIndex, index) |
77 |
: html; |
78 |
} |