| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | 'use strict'; |
| |
|
| | |
| | |
| | |
| | |
| |
|
| | var matchHtmlRegExp = /["'&<>]/; |
| |
|
| | |
| | |
| | |
| | |
| |
|
| | module.exports = escapeHtml; |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | function escapeHtml(string) { |
| | var str = '' + string; |
| | var match = matchHtmlRegExp.exec(str); |
| |
|
| | if (!match) { |
| | return str; |
| | } |
| |
|
| | var escape; |
| | var html = ''; |
| | var index = 0; |
| | var lastIndex = 0; |
| |
|
| | for (index = match.index; index < str.length; index++) { |
| | switch (str.charCodeAt(index)) { |
| | case 34: |
| | escape = '"'; |
| | break; |
| | case 38: |
| | escape = '&'; |
| | break; |
| | case 39: |
| | escape = '''; |
| | break; |
| | case 60: |
| | escape = '<'; |
| | break; |
| | case 62: |
| | escape = '>'; |
| | break; |
| | default: |
| | continue; |
| | } |
| |
|
| | if (lastIndex !== index) { |
| | html += str.substring(lastIndex, index); |
| | } |
| |
|
| | lastIndex = index + 1; |
| | html += escape; |
| | } |
| |
|
| | return lastIndex !== index |
| | ? html + str.substring(lastIndex, index) |
| | : html; |
| | } |
| |
|