-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathleet.js
67 lines (63 loc) · 1.93 KB
/
leet.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
"use strict";
// leet.js
var Leet = function (ignoreCase) {
var _translate = [];
var _ignoreCase;
var alphabet = [
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m",
"n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"
];
var leet = [
"4", "8", "c", "d", "3", "f", "6", "h", "!", "j", "k", "1", "m",
"n", "0", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"
];
var _file, _config;
var addTranslation = function(from, to) {
_translate.push({ from: from, to: to });
}
// Constructor
function Leet(ignoreCase) {
if (!(this instanceof Leet)) {
return new Leet();
}
_ignoreCase = (ignoreCase === undefined) ? true : ignoreCase;
addTranslation("a", "4");
addTranslation("b", "8");
addTranslation("c", "c");
addTranslation("d", "d");
addTranslation("e", "3");
addTranslation("f", "f");
addTranslation("g", "6");
addTranslation("h", "h");
addTranslation("i", "!");
addTranslation("j", "j");
addTranslation("k", "k");
addTranslation("l", "1");
addTranslation("m", "m");
addTranslation("n", "n");
addTranslation("o", "0");
addTranslation("p", "p");
addTranslation("q", "q");
addTranslation("r", "r");
addTranslation("s", "5");
addTranslation("t", "7");
addTranslation("u", "u");
addTranslation("v", "v");
addTranslation("w", "w");
addTranslation("x", "x");
addTranslation("y", "y");
addTranslation("z", "2");
}
Leet.prototype.get = function (str) {
for (var i = 0; i < _translate.length; i++) {
var t = _translate[i];
if (t.from != t.to) {
var re = new RegExp(t.from, "g" + (_ignoreCase ? "i" : ""));
str = str.replace(re, t.to);
}
}
return str;
};
return new Leet(ignoreCase);
}
var exports = module.exports = Leet