-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrmt-filter.html
67 lines (65 loc) · 2 KB
/
rmt-filter.html
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
<!DOCTYPE html>
<html>
<head>
<title>RMT filter test</title>
<style type="text/css">
#textInput.error {
background: red;
}
</style>
</head>
<body>
<textarea cols="50" rows="5" id="textInput" class=""></textarea>
<br/>
<button id="testButton">Test</button>
<script type="application/javascript">
var forbiddenUrls = ['aoaue.com', 'egpal.com'];
var characterMap = {
'a': ['a', 'à', 'á', 'â', 'ã', 'ä', 'å', 'а'],
'b': ['b'],
'c': ['c', '¢', '©', 'с'],
'd': ['d'],
'e': ['e', 'è', 'é', 'ê', 'ë', 'е', 'ё'],
'f': ['f'],
'g': ['g'],
'h': ['h'],
'i': ['i'],
'j': ['j'],
'k': ['k'],
'l': ['l'],
'm': ['m', 'м'],
'n': ['n'],
'o': ['o', '0', 'ò', 'ó', 'ô', 'õ', 'ö', 'ø', 'ð', 'о'],
'p': ['p'],
'q': ['q'],
'r': ['r'],
's': ['s'],
't': ['t'],
'u': ['u', 'ù', 'ú', 'û', 'ü'],
'v': ['v'],
'w': ['w'],
'x': ['x'],
'y': ['y'],
'z': ['z'],
'.': ["\\W", 'dot']
};
var regexUrls = [];
for (var u = 0; u < forbiddenUrls.length; u++) {
var url = forbiddenUrls[u];
var letterGroups = [];
for (var l = 0; l < url.length; l++) {
letterGroups.push('(?:' + characterMap[url.charAt(l)].join('|') + ')');
}
regexUrls.push('(?:' + letterGroups.join("\\W*") + ')');
}
var regex = new RegExp(regexUrls.join('|'), 'giu');
var $input = document.getElementById('textInput');
document.getElementById('testButton').onclick = function() {
$input.className = '';
if ($input.value.search(regex) !== -1) {
$input.className = 'error';
}
};
</script>
</body>
</html>