blob: e7cc13bed8783278a84b73a1b2d189554b3f79bd (
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;
- }
- };
- module.exports = { unescapeString: unescapeString };
|