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.
41 lines
740 B
41 lines
740 B
'use strict'; |
|
|
|
const internals = {}; |
|
|
|
|
|
module.exports = function (input) { |
|
|
|
if (!input) { |
|
return ''; |
|
} |
|
|
|
const lessThan = 0x3C; |
|
const greaterThan = 0x3E; |
|
const andSymbol = 0x26; |
|
const lineSeperator = 0x2028; |
|
|
|
// replace method |
|
let charCode; |
|
return input.replace(/[<>&\u2028\u2029]/g, (match) => { |
|
|
|
charCode = match.charCodeAt(0); |
|
|
|
if (charCode === lessThan) { |
|
return '\\u003c'; |
|
} |
|
|
|
if (charCode === greaterThan) { |
|
return '\\u003e'; |
|
} |
|
|
|
if (charCode === andSymbol) { |
|
return '\\u0026'; |
|
} |
|
|
|
if (charCode === lineSeperator) { |
|
return '\\u2028'; |
|
} |
|
|
|
return '\\u2029'; |
|
}); |
|
};
|
|
|