ccashbot/helpers/leetspeak.js
Expand-sys 9422e6e2b3 good
2021-06-09 20:40:12 +10:00

91 lines
1.7 KiB
JavaScript

const alphabetBasic = {
'a': '4',
'b': '8',
'e': '3',
'f': 'f',
'g': '6', // or 9
'i': '1', // or |
'o': '0',
's': '5',
't': '7' // or +
}
const alphabetAdvanced = {
'c': '(', // or k or |< or /<
'd': '<|',
'h': '|-|',
'k': '|<', // or /<
'l': '|', // or 1
'm': '|\\/|',
'n': '|\\|',
'p': '|2',
'u': '|_|',
'v': '/', // or \/
'w': '//', // or \/\/
'x': '><',
'y': '\'/'
}
const alphabetReversed = [
[/(\|\\\/\|)/g, 'm'],
[/(\|\\\|)/g, 'n'],
[/(\()/g, 'c'],
[/(<\|)/g, 'd'],
[/\|-\|/g, 'h'],
[/(\|<)/g, 'k'],
[/(\|2)/g, 'p'],
[/(\|_\|)/g, 'u'],
[/(\/\/)/g, 'w'],
[/(><)/g, 'x'],
[/(\|)/g, 'l'],
[/(\'\/)/g, 'y'],
[/(\/)/g, 'v'],
[/(1)/g, 'i'],
[/(0)/g, 'o'],
[/(3)/g, 'e'],
[/(4)/g, 'a'],
[/(5)/g, 's'],
[/(6)/g, 'g'],
[/(7)/g, 't'],
[/(8)/g, 'b'],
[/(ph)/g, 'f'],
]
// Convert input into l33t
const convertInput = (text, useAdvanced = 'n') => {
for (let i = 0; i < text.length; i++) {
let alphabet
let letter = text[i].toLowerCase()
if (useAdvanced.toLowerCase() === 'y') {
// Use advanced l33t speak alphabet
alphabet = alphabetBasic[letter] ? alphabetBasic[letter] : alphabetAdvanced[letter]
} else {
// Use basic l33t speak alphabet
alphabet = alphabetBasic[letter]
}
if (alphabet) {
text = text.replace(text[i], alphabet)
}
}
// Show the result in console
console.log(text)
return text
}
const convertInputReverse = (text) => {
text = text.toLowerCase()
alphabetReversed.map((x) => {
text = text.replace(x[0], x[1])
})
console.log(text)
return text
}
module.exports = { convertInput, convertInputReverse }