You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
971 B
34 lines
971 B
/** |
|
* @fileoverview XML character escaper |
|
* @author George Chung |
|
*/ |
|
"use strict"; |
|
|
|
//------------------------------------------------------------------------------ |
|
// Public Interface |
|
//------------------------------------------------------------------------------ |
|
|
|
/** |
|
* Returns the escaped value for a character |
|
* @param {string} s string to examine |
|
* @returns {string} severity level |
|
* @private |
|
*/ |
|
module.exports = function(s) { |
|
return (`${s}`).replace(/[<>&"'\x00-\x1F\x7F\u0080-\uFFFF]/gu, c => { // eslint-disable-line no-control-regex -- Converting controls to entities |
|
switch (c) { |
|
case "<": |
|
return "<"; |
|
case ">": |
|
return ">"; |
|
case "&": |
|
return "&"; |
|
case "\"": |
|
return """; |
|
case "'": |
|
return "'"; |
|
default: |
|
return `&#${c.charCodeAt(0)};`; |
|
} |
|
}); |
|
};
|
|
|