mirror of
https://github.com/gchq/CyberChef.git
synced 2025-04-22 07:46:16 -04:00
Merge branch 'feature/remove-letter-accents' of https://github.com/klaxon1/CyberChef into klaxon1-feature/remove-letter-accents
This commit is contained in:
commit
b301d16cb2
4 changed files with 67 additions and 0 deletions
|
@ -168,6 +168,7 @@
|
||||||
"ops": [
|
"ops": [
|
||||||
"Encode text",
|
"Encode text",
|
||||||
"Decode text",
|
"Decode text",
|
||||||
|
"Remove Letter Accents",
|
||||||
"Unescape Unicode Characters"
|
"Unescape Unicode Characters"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
42
src/core/operations/RemoveLetterAccents.mjs
Normal file
42
src/core/operations/RemoveLetterAccents.mjs
Normal 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;
|
|
@ -63,6 +63,7 @@ import "./tests/operations/ParseIPRange";
|
||||||
import "./tests/operations/PowerSet";
|
import "./tests/operations/PowerSet";
|
||||||
import "./tests/operations/Regex";
|
import "./tests/operations/Regex";
|
||||||
import "./tests/operations/Register";
|
import "./tests/operations/Register";
|
||||||
|
import "./tests/operations/RemoveLetterAccents";
|
||||||
import "./tests/operations/Rotate";
|
import "./tests/operations/Rotate";
|
||||||
import "./tests/operations/SeqUtils";
|
import "./tests/operations/SeqUtils";
|
||||||
import "./tests/operations/SetDifference";
|
import "./tests/operations/SetDifference";
|
||||||
|
|
23
test/tests/operations/RemoveLetterAccents.mjs
Normal file
23
test/tests/operations/RemoveLetterAccents.mjs
Normal 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": []
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
]);
|
Loading…
Add table
Add a link
Reference in a new issue