Merge branch 'feature/remove-letter-accents' of https://github.com/klaxon1/CyberChef into klaxon1-feature/remove-letter-accents

This commit is contained in:
n1474335 2018-11-07 14:57:05 +00:00
commit b301d16cb2
4 changed files with 67 additions and 0 deletions

View File

@ -168,6 +168,7 @@
"ops": [
"Encode text",
"Decode text",
"Remove Letter Accents",
"Unescape Unicode Characters"
]
},

View File

@ -0,0 +1,42 @@
/**
* @author Klaxon [klaxon@veyr.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
import Operation from "../Operation";
/**
* Remove Letter Accents operation
*/
class RemoveLetterAccents extends Operation {
/**
* RemoveLetterAccents constructor
*/
constructor() {
super();
this.name = "Remove Letter Accents";
this.module = "Default";
this.description = "Replaces accented characters with their latin character equivalent.";
this.infoURL = "";
this.inputType = "string";
this.outputType = "string";
this.args = [
];
}
/**
* @param {string} input
* @param {Object[]} args
* @returns {string}
*/
run(input, args) {
//reference: https://stackoverflow.com/questions/990904/remove-accents-diacritics-in-a-string-in-javascript/37511463
return input.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
}
}
export default RemoveLetterAccents;

View File

@ -63,6 +63,7 @@ import "./tests/operations/ParseIPRange";
import "./tests/operations/PowerSet";
import "./tests/operations/Regex";
import "./tests/operations/Register";
import "./tests/operations/RemoveLetterAccents";
import "./tests/operations/Rotate";
import "./tests/operations/SeqUtils";
import "./tests/operations/SetDifference";

View File

@ -0,0 +1,23 @@
/**
* Remove Letter Accents tests.
*
* @author Klaxon [klaxon@veyr.com]
* @copyright Crown Copyright 2017
* @license Apache-2.0
*/
import TestRegister from "../../TestRegister";
TestRegister.addTests([
{
name: "Remove Letter Accents",
input: "\xe0, \xe8, \xec, \xf2, \xf9 \xc0, \xc8, \xcc, \xd2, \xd9\n\xe1, \xe9, \xed, \xf3, \xfa, \xfd \xc1, \xc9, \xcd, \xd3, \xda, \xdd\n\xe2, \xea, \xee, \xf4, \xfb \xc2, \xca, \xce, \xd4, \xdb\n\xe3, \xf1, \xf5 \xc3, \xd1, \xd5\n\xe4, \xeb, \xef, \xf6, \xfc, \xff \xc4, \xcb, \xcf, \xd6, \xdc, \u0178\n\xe5, \xc5",
expectedOutput: "a, e, i, o, u A, E, I, O, U\na, e, i, o, u, y A, E, I, O, U, Y\na, e, i, o, u A, E, I, O, U\na, n, o A, N, O\na, e, i, o, u, y A, E, I, O, U, Y\na, A",
recipeConfig: [
{
"op": "Remove Letter Accents",
"args": []
},
],
},
]);