08-27-周三_17-09-29
This commit is contained in:
155
node_modules/html-entities/lib/xml-entities.js
generated
vendored
Normal file
155
node_modules/html-entities/lib/xml-entities.js
generated
vendored
Normal file
@@ -0,0 +1,155 @@
|
||||
var ALPHA_INDEX = {
|
||||
'<': '<',
|
||||
'>': '>',
|
||||
'"': '"',
|
||||
'&apos': '\'',
|
||||
'&': '&',
|
||||
'<': '<',
|
||||
'>': '>',
|
||||
'"': '"',
|
||||
''': '\'',
|
||||
'&': '&'
|
||||
};
|
||||
|
||||
var CHAR_INDEX = {
|
||||
60: 'lt',
|
||||
62: 'gt',
|
||||
34: 'quot',
|
||||
39: 'apos',
|
||||
38: 'amp'
|
||||
};
|
||||
|
||||
var CHAR_S_INDEX = {
|
||||
'<': '<',
|
||||
'>': '>',
|
||||
'"': '"',
|
||||
'\'': ''',
|
||||
'&': '&'
|
||||
};
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
function XmlEntities() {}
|
||||
|
||||
/**
|
||||
* @param {String} str
|
||||
* @returns {String}
|
||||
*/
|
||||
XmlEntities.prototype.encode = function(str) {
|
||||
if (str.length === 0) {
|
||||
return '';
|
||||
}
|
||||
return str.replace(/<|>|"|'|&/g, function(s) {
|
||||
return CHAR_S_INDEX[s];
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {String} str
|
||||
* @returns {String}
|
||||
*/
|
||||
XmlEntities.encode = function(str) {
|
||||
return new XmlEntities().encode(str);
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {String} str
|
||||
* @returns {String}
|
||||
*/
|
||||
XmlEntities.prototype.decode = function(str) {
|
||||
if (str.length === 0) {
|
||||
return '';
|
||||
}
|
||||
return str.replace(/&#?[0-9a-zA-Z]+;?/g, function(s) {
|
||||
if (s.charAt(1) === '#') {
|
||||
var code = s.charAt(2).toLowerCase() === 'x' ?
|
||||
parseInt(s.substr(3), 16) :
|
||||
parseInt(s.substr(2));
|
||||
|
||||
if (isNaN(code) || code < -32768 || code > 65535) {
|
||||
return '';
|
||||
}
|
||||
return String.fromCharCode(code);
|
||||
}
|
||||
return ALPHA_INDEX[s] || s;
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {String} str
|
||||
* @returns {String}
|
||||
*/
|
||||
XmlEntities.decode = function(str) {
|
||||
return new XmlEntities().decode(str);
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {String} str
|
||||
* @returns {String}
|
||||
*/
|
||||
XmlEntities.prototype.encodeNonUTF = function(str) {
|
||||
var strLength = str.length;
|
||||
if (strLength === 0) {
|
||||
return '';
|
||||
}
|
||||
var result = '';
|
||||
var i = 0;
|
||||
while (i < strLength) {
|
||||
var c = str.charCodeAt(i);
|
||||
var alpha = CHAR_INDEX[c];
|
||||
if (alpha) {
|
||||
result += "&" + alpha + ";";
|
||||
i++;
|
||||
continue;
|
||||
}
|
||||
if (c < 32 || c > 126) {
|
||||
result += '&#' + c + ';';
|
||||
} else {
|
||||
result += str.charAt(i);
|
||||
}
|
||||
i++;
|
||||
}
|
||||
return result;
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {String} str
|
||||
* @returns {String}
|
||||
*/
|
||||
XmlEntities.encodeNonUTF = function(str) {
|
||||
return new XmlEntities().encodeNonUTF(str);
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {String} str
|
||||
* @returns {String}
|
||||
*/
|
||||
XmlEntities.prototype.encodeNonASCII = function(str) {
|
||||
var strLenght = str.length;
|
||||
if (strLenght === 0) {
|
||||
return '';
|
||||
}
|
||||
var result = '';
|
||||
var i = 0;
|
||||
while (i < strLenght) {
|
||||
var c = str.charCodeAt(i);
|
||||
if (c <= 255) {
|
||||
result += str[i++];
|
||||
continue;
|
||||
}
|
||||
result += '&#' + c + ';';
|
||||
i++;
|
||||
}
|
||||
return result;
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {String} str
|
||||
* @returns {String}
|
||||
*/
|
||||
XmlEntities.encodeNonASCII = function(str) {
|
||||
return new XmlEntities().encodeNonASCII(str);
|
||||
};
|
||||
|
||||
module.exports = XmlEntities;
|
Reference in New Issue
Block a user