1148 lines
20 KiB
JavaScript
1148 lines
20 KiB
JavaScript
/**
|
|
* Encoder
|
|
*/
|
|
export const Encoder = {
|
|
EncodeType: "entity",
|
|
isEmpty: function (val) {
|
|
if (val) {
|
|
return val === null || val.length == 0 || /^\s+$/.test(val);
|
|
} else {
|
|
return true;
|
|
}
|
|
},
|
|
HTML2Numerical: function (s) {
|
|
var arr1 = new Array(
|
|
" ",
|
|
"¡",
|
|
"¢",
|
|
"£",
|
|
"¤",
|
|
"¥",
|
|
"¦",
|
|
"§",
|
|
"¨",
|
|
"©",
|
|
"ª",
|
|
"«",
|
|
"¬",
|
|
"­",
|
|
"®",
|
|
"¯",
|
|
"°",
|
|
"±",
|
|
"²",
|
|
"³",
|
|
"´",
|
|
"µ",
|
|
"¶",
|
|
"·",
|
|
"¸",
|
|
"¹",
|
|
"º",
|
|
"»",
|
|
"¼",
|
|
"½",
|
|
"¾",
|
|
"¿",
|
|
"à",
|
|
"á",
|
|
"â",
|
|
"ã",
|
|
"Ä",
|
|
"å",
|
|
"æ",
|
|
"ç",
|
|
"è",
|
|
"é",
|
|
"ê",
|
|
"ë",
|
|
"ì",
|
|
"í",
|
|
"î",
|
|
"ï",
|
|
"ð",
|
|
"ñ",
|
|
"ò",
|
|
"ó",
|
|
"ô",
|
|
"õ",
|
|
"Ö",
|
|
"×",
|
|
"ø",
|
|
"ù",
|
|
"ú",
|
|
"û",
|
|
"Ü",
|
|
"ý",
|
|
"þ",
|
|
"ß",
|
|
"à",
|
|
"á",
|
|
"â",
|
|
"ã",
|
|
"ä",
|
|
"å",
|
|
"æ",
|
|
"ç",
|
|
"è",
|
|
"é",
|
|
"ê",
|
|
"ë",
|
|
"ì",
|
|
"í",
|
|
"î",
|
|
"ï",
|
|
"ð",
|
|
"ñ",
|
|
"ò",
|
|
"ó",
|
|
"ô",
|
|
"õ",
|
|
"ö",
|
|
"÷",
|
|
"Ø",
|
|
"ù",
|
|
"ú",
|
|
"û",
|
|
"ü",
|
|
"ý",
|
|
"þ",
|
|
"ÿ",
|
|
""",
|
|
"&",
|
|
"<",
|
|
">",
|
|
"œ",
|
|
"œ",
|
|
"š",
|
|
"š",
|
|
"ÿ",
|
|
"ˆ",
|
|
"˜",
|
|
" ",
|
|
" ",
|
|
" ",
|
|
"‌",
|
|
"‍",
|
|
"‎",
|
|
"‏",
|
|
"–",
|
|
"—",
|
|
"‘",
|
|
"’",
|
|
"‚",
|
|
"“",
|
|
"”",
|
|
"„",
|
|
"†",
|
|
"†",
|
|
"‰",
|
|
"‹",
|
|
"›",
|
|
"€",
|
|
"ƒ",
|
|
"α",
|
|
"β",
|
|
"γ",
|
|
"δ",
|
|
"ε",
|
|
"ζ",
|
|
"η",
|
|
"θ",
|
|
"ι",
|
|
"κ",
|
|
"λ",
|
|
"μ",
|
|
"ν",
|
|
"ξ",
|
|
"ο",
|
|
"π",
|
|
"ρ",
|
|
"σ",
|
|
"τ",
|
|
"υ",
|
|
"φ",
|
|
"χ",
|
|
"ψ",
|
|
"ω",
|
|
"α",
|
|
"β",
|
|
"γ",
|
|
"δ",
|
|
"ε",
|
|
"ζ",
|
|
"η",
|
|
"θ",
|
|
"ι",
|
|
"κ",
|
|
"λ",
|
|
"μ",
|
|
"ν",
|
|
"ξ",
|
|
"ο",
|
|
"π",
|
|
"ρ",
|
|
"ς",
|
|
"σ",
|
|
"τ",
|
|
"υ",
|
|
"φ",
|
|
"χ",
|
|
"ψ",
|
|
"ω",
|
|
"ϑ",
|
|
"ϒ",
|
|
"ϖ",
|
|
"•",
|
|
"…",
|
|
"′",
|
|
"′",
|
|
"‾",
|
|
"⁄",
|
|
"℘",
|
|
"ℑ",
|
|
"ℜ",
|
|
"™",
|
|
"ℵ",
|
|
"←",
|
|
"↑",
|
|
"→",
|
|
"↓",
|
|
"↔",
|
|
"↵",
|
|
"←",
|
|
"↑",
|
|
"→",
|
|
"↓",
|
|
"↔",
|
|
"∀",
|
|
"∂",
|
|
"∃",
|
|
"∅",
|
|
"∇",
|
|
"∈",
|
|
"∉",
|
|
"∋",
|
|
"∏",
|
|
"∑",
|
|
"−",
|
|
"∗",
|
|
"√",
|
|
"∝",
|
|
"∞",
|
|
"∠",
|
|
"∧",
|
|
"∨",
|
|
"∩",
|
|
"∪",
|
|
"∫",
|
|
"∴",
|
|
"∼",
|
|
"≅",
|
|
"≈",
|
|
"≠",
|
|
"≡",
|
|
"≤",
|
|
"≥",
|
|
"⊂",
|
|
"⊃",
|
|
"⊄",
|
|
"⊆",
|
|
"⊇",
|
|
"⊕",
|
|
"⊗",
|
|
"⊥",
|
|
"⋅",
|
|
"⌈",
|
|
"⌉",
|
|
"⌊",
|
|
"⌋",
|
|
"⟨",
|
|
"⟩",
|
|
"◊",
|
|
"♠",
|
|
"♣",
|
|
"♥",
|
|
"♦"
|
|
);
|
|
var arr2 = new Array(
|
|
" ",
|
|
"¡",
|
|
"¢",
|
|
"£",
|
|
"¤",
|
|
"¥",
|
|
"¦",
|
|
"§",
|
|
"¨",
|
|
"©",
|
|
"ª",
|
|
"«",
|
|
"¬",
|
|
"­",
|
|
"®",
|
|
"¯",
|
|
"°",
|
|
"±",
|
|
"²",
|
|
"³",
|
|
"´",
|
|
"µ",
|
|
"¶",
|
|
"·",
|
|
"¸",
|
|
"¹",
|
|
"º",
|
|
"»",
|
|
"¼",
|
|
"½",
|
|
"¾",
|
|
"¿",
|
|
"À",
|
|
"Á",
|
|
"Â",
|
|
"Ã",
|
|
"Ä",
|
|
"Å",
|
|
"Æ",
|
|
"Ç",
|
|
"È",
|
|
"É",
|
|
"Ê",
|
|
"Ë",
|
|
"Ì",
|
|
"Í",
|
|
"Î",
|
|
"Ï",
|
|
"Ð",
|
|
"Ñ",
|
|
"Ò",
|
|
"Ó",
|
|
"Ô",
|
|
"Õ",
|
|
"Ö",
|
|
"×",
|
|
"Ø",
|
|
"Ù",
|
|
"Ú",
|
|
"Û",
|
|
"Ü",
|
|
"Ý",
|
|
"Þ",
|
|
"ß",
|
|
"à",
|
|
"á",
|
|
"â",
|
|
"ã",
|
|
"ä",
|
|
"å",
|
|
"æ",
|
|
"ç",
|
|
"è",
|
|
"é",
|
|
"ê",
|
|
"ë",
|
|
"ì",
|
|
"í",
|
|
"î",
|
|
"ï",
|
|
"ð",
|
|
"ñ",
|
|
"ò",
|
|
"ó",
|
|
"ô",
|
|
"õ",
|
|
"ö",
|
|
"÷",
|
|
"ø",
|
|
"ù",
|
|
"ú",
|
|
"û",
|
|
"ü",
|
|
"ý",
|
|
"þ",
|
|
"ÿ",
|
|
""",
|
|
"&",
|
|
"<",
|
|
">",
|
|
"Œ",
|
|
"œ",
|
|
"Š",
|
|
"š",
|
|
"Ÿ",
|
|
"ˆ",
|
|
"˜",
|
|
" ",
|
|
" ",
|
|
" ",
|
|
"‌",
|
|
"‍",
|
|
"‎",
|
|
"‏",
|
|
"–",
|
|
"—",
|
|
"‘",
|
|
"’",
|
|
"‚",
|
|
"“",
|
|
"”",
|
|
"„",
|
|
"†",
|
|
"‡",
|
|
"‰",
|
|
"‹",
|
|
"›",
|
|
"€",
|
|
"ƒ",
|
|
"Α",
|
|
"Β",
|
|
"Γ",
|
|
"Δ",
|
|
"Ε",
|
|
"Ζ",
|
|
"Η",
|
|
"Θ",
|
|
"Ι",
|
|
"Κ",
|
|
"Λ",
|
|
"Μ",
|
|
"Ν",
|
|
"Ξ",
|
|
"Ο",
|
|
"Π",
|
|
"Ρ",
|
|
"Σ",
|
|
"Τ",
|
|
"Υ",
|
|
"Φ",
|
|
"Χ",
|
|
"Ψ",
|
|
"Ω",
|
|
"α",
|
|
"β",
|
|
"γ",
|
|
"δ",
|
|
"ε",
|
|
"ζ",
|
|
"η",
|
|
"θ",
|
|
"ι",
|
|
"κ",
|
|
"λ",
|
|
"μ",
|
|
"ν",
|
|
"ξ",
|
|
"ο",
|
|
"π",
|
|
"ρ",
|
|
"ς",
|
|
"σ",
|
|
"τ",
|
|
"υ",
|
|
"φ",
|
|
"χ",
|
|
"ψ",
|
|
"ω",
|
|
"ϑ",
|
|
"ϒ",
|
|
"ϖ",
|
|
"•",
|
|
"…",
|
|
"′",
|
|
"″",
|
|
"‾",
|
|
"⁄",
|
|
"℘",
|
|
"ℑ",
|
|
"ℜ",
|
|
"™",
|
|
"ℵ",
|
|
"←",
|
|
"↑",
|
|
"→",
|
|
"↓",
|
|
"↔",
|
|
"↵",
|
|
"⇐",
|
|
"⇑",
|
|
"⇒",
|
|
"⇓",
|
|
"⇔",
|
|
"∀",
|
|
"∂",
|
|
"∃",
|
|
"∅",
|
|
"∇",
|
|
"∈",
|
|
"∉",
|
|
"∋",
|
|
"∏",
|
|
"∑",
|
|
"−",
|
|
"∗",
|
|
"√",
|
|
"∝",
|
|
"∞",
|
|
"∠",
|
|
"∧",
|
|
"∨",
|
|
"∩",
|
|
"∪",
|
|
"∫",
|
|
"∴",
|
|
"∼",
|
|
"≅",
|
|
"≈",
|
|
"≠",
|
|
"≡",
|
|
"≤",
|
|
"≥",
|
|
"⊂",
|
|
"⊃",
|
|
"⊄",
|
|
"⊆",
|
|
"⊇",
|
|
"⊕",
|
|
"⊗",
|
|
"⊥",
|
|
"⋅",
|
|
"⌈",
|
|
"⌉",
|
|
"⌊",
|
|
"⌋",
|
|
"〈",
|
|
"〉",
|
|
"◊",
|
|
"♠",
|
|
"♣",
|
|
"♥",
|
|
"♦"
|
|
);
|
|
return this.swapArrayVals(s, arr1, arr2);
|
|
},
|
|
NumericalToHTML: function (s) {
|
|
var arr1 = new Array(
|
|
" ",
|
|
"¡",
|
|
"¢",
|
|
"£",
|
|
"¤",
|
|
"¥",
|
|
"¦",
|
|
"§",
|
|
"¨",
|
|
"©",
|
|
"ª",
|
|
"«",
|
|
"¬",
|
|
"­",
|
|
"®",
|
|
"¯",
|
|
"°",
|
|
"±",
|
|
"²",
|
|
"³",
|
|
"´",
|
|
"µ",
|
|
"¶",
|
|
"·",
|
|
"¸",
|
|
"¹",
|
|
"º",
|
|
"»",
|
|
"¼",
|
|
"½",
|
|
"¾",
|
|
"¿",
|
|
"À",
|
|
"Á",
|
|
"Â",
|
|
"Ã",
|
|
"Ä",
|
|
"Å",
|
|
"Æ",
|
|
"Ç",
|
|
"È",
|
|
"É",
|
|
"Ê",
|
|
"Ë",
|
|
"Ì",
|
|
"Í",
|
|
"Î",
|
|
"Ï",
|
|
"Ð",
|
|
"Ñ",
|
|
"Ò",
|
|
"Ó",
|
|
"Ô",
|
|
"Õ",
|
|
"Ö",
|
|
"×",
|
|
"Ø",
|
|
"Ù",
|
|
"Ú",
|
|
"Û",
|
|
"Ü",
|
|
"Ý",
|
|
"Þ",
|
|
"ß",
|
|
"à",
|
|
"á",
|
|
"â",
|
|
"ã",
|
|
"ä",
|
|
"å",
|
|
"æ",
|
|
"ç",
|
|
"è",
|
|
"é",
|
|
"ê",
|
|
"ë",
|
|
"ì",
|
|
"í",
|
|
"î",
|
|
"ï",
|
|
"ð",
|
|
"ñ",
|
|
"ò",
|
|
"ó",
|
|
"ô",
|
|
"õ",
|
|
"ö",
|
|
"÷",
|
|
"ø",
|
|
"ù",
|
|
"ú",
|
|
"û",
|
|
"ü",
|
|
"ý",
|
|
"þ",
|
|
"ÿ",
|
|
""",
|
|
"&",
|
|
"<",
|
|
">",
|
|
"Œ",
|
|
"œ",
|
|
"Š",
|
|
"š",
|
|
"Ÿ",
|
|
"ˆ",
|
|
"˜",
|
|
" ",
|
|
" ",
|
|
" ",
|
|
"‌",
|
|
"‍",
|
|
"‎",
|
|
"‏",
|
|
"–",
|
|
"—",
|
|
"‘",
|
|
"’",
|
|
"‚",
|
|
"“",
|
|
"”",
|
|
"„",
|
|
"†",
|
|
"‡",
|
|
"‰",
|
|
"‹",
|
|
"›",
|
|
"€",
|
|
"ƒ",
|
|
"Α",
|
|
"Β",
|
|
"Γ",
|
|
"Δ",
|
|
"Ε",
|
|
"Ζ",
|
|
"Η",
|
|
"Θ",
|
|
"Ι",
|
|
"Κ",
|
|
"Λ",
|
|
"Μ",
|
|
"Ν",
|
|
"Ξ",
|
|
"Ο",
|
|
"Π",
|
|
"Ρ",
|
|
"Σ",
|
|
"Τ",
|
|
"Υ",
|
|
"Φ",
|
|
"Χ",
|
|
"Ψ",
|
|
"Ω",
|
|
"α",
|
|
"β",
|
|
"γ",
|
|
"δ",
|
|
"ε",
|
|
"ζ",
|
|
"η",
|
|
"θ",
|
|
"ι",
|
|
"κ",
|
|
"λ",
|
|
"μ",
|
|
"ν",
|
|
"ξ",
|
|
"ο",
|
|
"π",
|
|
"ρ",
|
|
"ς",
|
|
"σ",
|
|
"τ",
|
|
"υ",
|
|
"φ",
|
|
"χ",
|
|
"ψ",
|
|
"ω",
|
|
"ϑ",
|
|
"ϒ",
|
|
"ϖ",
|
|
"•",
|
|
"…",
|
|
"′",
|
|
"″",
|
|
"‾",
|
|
"⁄",
|
|
"℘",
|
|
"ℑ",
|
|
"ℜ",
|
|
"™",
|
|
"ℵ",
|
|
"←",
|
|
"↑",
|
|
"→",
|
|
"↓",
|
|
"↔",
|
|
"↵",
|
|
"⇐",
|
|
"⇑",
|
|
"⇒",
|
|
"⇓",
|
|
"⇔",
|
|
"∀",
|
|
"∂",
|
|
"∃",
|
|
"∅",
|
|
"∇",
|
|
"∈",
|
|
"∉",
|
|
"∋",
|
|
"∏",
|
|
"∑",
|
|
"−",
|
|
"∗",
|
|
"√",
|
|
"∝",
|
|
"∞",
|
|
"∠",
|
|
"∧",
|
|
"∨",
|
|
"∩",
|
|
"∪",
|
|
"∫",
|
|
"∴",
|
|
"∼",
|
|
"≅",
|
|
"≈",
|
|
"≠",
|
|
"≡",
|
|
"≤",
|
|
"≥",
|
|
"⊂",
|
|
"⊃",
|
|
"⊄",
|
|
"⊆",
|
|
"⊇",
|
|
"⊕",
|
|
"⊗",
|
|
"⊥",
|
|
"⋅",
|
|
"⌈",
|
|
"⌉",
|
|
"⌊",
|
|
"⌋",
|
|
"〈",
|
|
"〉",
|
|
"◊",
|
|
"♠",
|
|
"♣",
|
|
"♥",
|
|
"♦"
|
|
);
|
|
var arr2 = new Array(
|
|
" ",
|
|
"¡",
|
|
"¢",
|
|
"£",
|
|
"¤",
|
|
"¥",
|
|
"¦",
|
|
"§",
|
|
"¨",
|
|
"©",
|
|
"ª",
|
|
"«",
|
|
"¬",
|
|
"­",
|
|
"®",
|
|
"¯",
|
|
"°",
|
|
"±",
|
|
"²",
|
|
"³",
|
|
"´",
|
|
"µ",
|
|
"¶",
|
|
"·",
|
|
"¸",
|
|
"¹",
|
|
"º",
|
|
"»",
|
|
"¼",
|
|
"½",
|
|
"¾",
|
|
"¿",
|
|
"à",
|
|
"á",
|
|
"â",
|
|
"ã",
|
|
"Ä",
|
|
"å",
|
|
"æ",
|
|
"ç",
|
|
"è",
|
|
"é",
|
|
"ê",
|
|
"ë",
|
|
"ì",
|
|
"í",
|
|
"î",
|
|
"ï",
|
|
"ð",
|
|
"ñ",
|
|
"ò",
|
|
"ó",
|
|
"ô",
|
|
"õ",
|
|
"Ö",
|
|
"×",
|
|
"ø",
|
|
"ù",
|
|
"ú",
|
|
"û",
|
|
"Ü",
|
|
"ý",
|
|
"þ",
|
|
"ß",
|
|
"à",
|
|
"á",
|
|
"â",
|
|
"ã",
|
|
"ä",
|
|
"å",
|
|
"æ",
|
|
"ç",
|
|
"è",
|
|
"é",
|
|
"ê",
|
|
"ë",
|
|
"ì",
|
|
"í",
|
|
"î",
|
|
"ï",
|
|
"ð",
|
|
"ñ",
|
|
"ò",
|
|
"ó",
|
|
"ô",
|
|
"õ",
|
|
"ö",
|
|
"÷",
|
|
"Ø",
|
|
"ù",
|
|
"ú",
|
|
"û",
|
|
"ü",
|
|
"ý",
|
|
"þ",
|
|
"ÿ",
|
|
""",
|
|
"&",
|
|
"<",
|
|
">",
|
|
"œ",
|
|
"œ",
|
|
"š",
|
|
"š",
|
|
"ÿ",
|
|
"ˆ",
|
|
"˜",
|
|
" ",
|
|
" ",
|
|
" ",
|
|
"‌",
|
|
"‍",
|
|
"‎",
|
|
"‏",
|
|
"–",
|
|
"—",
|
|
"‘",
|
|
"’",
|
|
"‚",
|
|
"“",
|
|
"”",
|
|
"„",
|
|
"†",
|
|
"†",
|
|
"‰",
|
|
"‹",
|
|
"›",
|
|
"€",
|
|
"ƒ",
|
|
"α",
|
|
"β",
|
|
"γ",
|
|
"δ",
|
|
"ε",
|
|
"ζ",
|
|
"η",
|
|
"θ",
|
|
"ι",
|
|
"κ",
|
|
"λ",
|
|
"μ",
|
|
"ν",
|
|
"ξ",
|
|
"ο",
|
|
"π",
|
|
"ρ",
|
|
"σ",
|
|
"τ",
|
|
"υ",
|
|
"φ",
|
|
"χ",
|
|
"ψ",
|
|
"ω",
|
|
"α",
|
|
"β",
|
|
"γ",
|
|
"δ",
|
|
"ε",
|
|
"ζ",
|
|
"η",
|
|
"θ",
|
|
"ι",
|
|
"κ",
|
|
"λ",
|
|
"μ",
|
|
"ν",
|
|
"ξ",
|
|
"ο",
|
|
"π",
|
|
"ρ",
|
|
"ς",
|
|
"σ",
|
|
"τ",
|
|
"υ",
|
|
"φ",
|
|
"χ",
|
|
"ψ",
|
|
"ω",
|
|
"ϑ",
|
|
"ϒ",
|
|
"ϖ",
|
|
"•",
|
|
"…",
|
|
"′",
|
|
"′",
|
|
"‾",
|
|
"⁄",
|
|
"℘",
|
|
"ℑ",
|
|
"ℜ",
|
|
"™",
|
|
"ℵ",
|
|
"←",
|
|
"↑",
|
|
"→",
|
|
"↓",
|
|
"↔",
|
|
"↵",
|
|
"←",
|
|
"↑",
|
|
"→",
|
|
"↓",
|
|
"↔",
|
|
"∀",
|
|
"∂",
|
|
"∃",
|
|
"∅",
|
|
"∇",
|
|
"∈",
|
|
"∉",
|
|
"∋",
|
|
"∏",
|
|
"∑",
|
|
"−",
|
|
"∗",
|
|
"√",
|
|
"∝",
|
|
"∞",
|
|
"∠",
|
|
"∧",
|
|
"∨",
|
|
"∩",
|
|
"∪",
|
|
"∫",
|
|
"∴",
|
|
"∼",
|
|
"≅",
|
|
"≈",
|
|
"≠",
|
|
"≡",
|
|
"≤",
|
|
"≥",
|
|
"⊂",
|
|
"⊃",
|
|
"⊄",
|
|
"⊆",
|
|
"⊇",
|
|
"⊕",
|
|
"⊗",
|
|
"⊥",
|
|
"⋅",
|
|
"⌈",
|
|
"⌉",
|
|
"⌊",
|
|
"⌋",
|
|
"⟨",
|
|
"⟩",
|
|
"◊",
|
|
"♠",
|
|
"♣",
|
|
"♥",
|
|
"♦"
|
|
);
|
|
return this.swapArrayVals(s, arr1, arr2);
|
|
},
|
|
numEncode: function (s) {
|
|
if (this.isEmpty(s)) return "";
|
|
var e = "";
|
|
for (var i = 0; i < s.length; i++) {
|
|
var c = s.charAt(i);
|
|
if (c < " " || c > "~") {
|
|
c = "&#" + c.charCodeAt() + ";";
|
|
}
|
|
e += c;
|
|
}
|
|
return e;
|
|
},
|
|
htmlDecode: function (s) {
|
|
var c,
|
|
m,
|
|
d = s;
|
|
if (this.isEmpty(d)) return "";
|
|
d = this.HTML2Numerical(d);
|
|
const arr = d.match(/&#[0-9]{1,5};/g);
|
|
if (arr != null) {
|
|
for (var x = 0; x < arr.length; x++) {
|
|
m = arr[x];
|
|
c = m.substring(2, m.length - 1);
|
|
if (c >= -32768 && c <= 65535) {
|
|
d = d.replace(m, String.fromCharCode(c));
|
|
} else {
|
|
d = d.replace(m, "");
|
|
}
|
|
}
|
|
}
|
|
return d;
|
|
},
|
|
htmlEncode: function (s, dbl) {
|
|
if (this.isEmpty(s)) return "";
|
|
dbl = dbl | false;
|
|
if (dbl) {
|
|
if (this.EncodeType == "numerical") {
|
|
s = s.replace(/&/g, "&");
|
|
} else {
|
|
s = s.replace(/&/g, "&");
|
|
}
|
|
}
|
|
s = this.XSSEncode(s, false);
|
|
if (this.EncodeType == "numerical" || !dbl) {
|
|
s = this.HTML2Numerical(s);
|
|
}
|
|
s = this.numEncode(s);
|
|
if (!dbl) {
|
|
s = s.replace(/&#/g, "##AMPHASH##");
|
|
if (this.EncodeType == "numerical") {
|
|
s = s.replace(/&/g, "&");
|
|
} else {
|
|
s = s.replace(/&/g, "&");
|
|
}
|
|
s = s.replace(/##AMPHASH##/g, "&#");
|
|
}
|
|
s = s.replace(/&#\d*([^\d;]|$)/g, "$1");
|
|
if (!dbl) {
|
|
s = this.correctEncoding(s);
|
|
}
|
|
if (this.EncodeType == "entity") {
|
|
s = this.NumericalToHTML(s);
|
|
}
|
|
return s;
|
|
},
|
|
XSSEncode: function (s, en) {
|
|
if (!this.isEmpty(s)) {
|
|
en = en || true;
|
|
if (en) {
|
|
s = s.replace(/\'/g, "'");
|
|
s = s.replace(/\"/g, """);
|
|
s = s.replace(/</g, "<");
|
|
s = s.replace(/>/g, ">");
|
|
} else {
|
|
s = s.replace(/\'/g, "'");
|
|
s = s.replace(/\"/g, """);
|
|
s = s.replace(/</g, "<");
|
|
s = s.replace(/>/g, ">");
|
|
}
|
|
return s;
|
|
} else {
|
|
return "";
|
|
}
|
|
},
|
|
hasEncoded: function (s) {
|
|
if (/&#[0-9]{1,5};/g.test(s)) {
|
|
return true;
|
|
} else if (/&[A-Z]{2,6};/gi.test(s)) {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
},
|
|
stripUnicode: function (s) {
|
|
return s.replace(/[^\x20-\x7E]/g, "");
|
|
},
|
|
correctEncoding: function (s) {
|
|
return s.replace(/(&)(amp;)+/, "$1");
|
|
},
|
|
swapArrayVals: function (s, arr1, arr2) {
|
|
if (this.isEmpty(s)) return "";
|
|
var re;
|
|
if (arr1 && arr2) {
|
|
if (arr1.length == arr2.length) {
|
|
for (var x = 0, i = arr1.length; x < i; x++) {
|
|
re = new RegExp(arr1[x], "g");
|
|
s = s.replace(re, arr2[x]);
|
|
}
|
|
}
|
|
}
|
|
return s;
|
|
},
|
|
};
|