Skip to content

Commit

Permalink
Preserve uppercase
Browse files Browse the repository at this point in the history
This will preserve uppercase.
  • Loading branch information
bartblaze committed Feb 17, 2025
1 parent 1b8c229 commit 7babef6
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 5 deletions.
13 changes: 8 additions & 5 deletions src/core/operations/ConvertLeetSpeak.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class ConvertLeetSpeak extends Operation {

this.name = "Convert Leet Speak";
this.module = "Default";
this.description = "Converts to and from Leet Speak";
this.description = "Converts to and from Leet Speak.";
this.infoURL = "https://wikipedia.org/wiki/Leet";
this.inputType = "string";
this.outputType = "string";
Expand All @@ -39,13 +39,16 @@ class ConvertLeetSpeak extends Operation {
*/
run(input, args) {
const direction = args[0];

if (direction === "To Leet Speak") {
return input.replace(/[abcdefghijklmnopqrstuvwxyz]/gi, char => {
return toLeetMap[char.toLowerCase()] || char;
return input.replace(/[a-z]/gi, char => {
const leetChar = toLeetMap[char.toLowerCase()] || char;
return char === char.toUpperCase() ? leetChar.toUpperCase() : leetChar;
});
} else if (direction === "From Leet Speak") {
return input.replace(/[48cd3f6h1jklmn0pqr57uvwxyz]/g, char => {
return fromLeetMap[char] || char;
return input.replace(/[48cd3f6h1jklmn0pqr57uvwxyz]/gi, char => {
const normalChar = fromLeetMap[char] || char;
return normalChar;
});
}
}
Expand Down
22 changes: 22 additions & 0 deletions tests/operations/tests/ConvertLeetSpeak.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,28 @@ TestRegister.addTests([
args: ["From Leet Speak"]
}
]
},
{
name: "Convert to Leet Speak: basic text, keep case",
input: "HELLO",
expectedOutput: "H3LL0",
recipeConfig: [
{
op: "Convert Leet Speak",
args: ["To Leet Speak"]
}
]
},
{
name: "Convert from Leet Speak: basic leet, keep case",
input: "H3LL0",
expectedOutput: "HeLLo",
recipeConfig: [
{
op: "Convert Leet Speak",
args: ["From Leet Speak"]
}
]
}
]);

0 comments on commit 7babef6

Please sign in to comment.