blob: 0104e68cf39582509ca1758276ea91af40dc34b6 (
plain)
- var entityToChar = require('./html5-entities.js').entityToChar;
- var ENTITY = "&(?:#x[a-f0-9]{1,8}|#[0-9]{1,8}|[a-z][a-z0-9]{1,31});";
- var reBackslashOrAmp = /[\\&]/;
- var ESCAPABLE = '[!"#$%&\'()*+,./:;<=>?@[\\\\\\]^_`{|}~-]';
- var reEntityOrEscapedChar = new RegExp('\\\\' + ESCAPABLE + '|' + ENTITY, 'gi');
- var unescapeChar = function(s) {
- "use strict";
- if (s[0] === '\\') {
- return s[1];
- } else {
- return entityToChar(s);
- }
- };
- // Replace entities and backslash escapes with literal characters.
- var unescapeString = function(s) {
- "use strict";
- if (reBackslashOrAmp.test(s)) {
- return s.replace(reEntityOrEscapedChar, unescapeChar);
- } else {
- return s;
- }
- };
- var normalizeURI = function(uri) {
- "use strict";
- return encodeURI(unescape(uri));
- }
- module.exports = { unescapeString: unescapeString,
- normalizeURI: normalizeURI
- };
|