-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathscript.js
71 lines (64 loc) · 2.24 KB
/
script.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
68
69
70
71
const mensaje = document.getElementById('mensaje');
const encriptar = document.getElementById('encriptar');
const desencriptar = document.getElementById('desencriptar');
const ningunMensaje = document.getElementById('ningunMensaje');
const mensajeEncontrado = document.getElementById('mensajeEncontrado');
const copiarMensaje = document.getElementById('copiarMensaje');
const mensajeEncriptado = document.getElementById('mensajeEncriptado');
const modal = document.getElementById("modal");
const modalButton = document.getElementById("modalButton");
const llaves = {
'e': 'enter',
'i': 'imes',
'a': 'ai',
'o': 'ober',
'u': 'ufat'
}
const reversedLlaves = Object.keys(llaves).reduce((accum, next) => {
const value = llaves[next];
accum[value] = next;
return accum;
}, {})
/**
*
* @param {Record<string,string>} diccionario
*
*/
function preRegExp(diccionario){
const preRegex = Object.keys(diccionario).reduce((accum, next) => accum+"|"+next);
return new RegExp(preRegex, 'g')
}
function encriptarTexto(text, diccionario){
return text.replace(preRegExp(diccionario), (match) => diccionario[match]);
}
function checkString(string){
const check = /[^a-z 0-9]/g.test(string);
if(check){
modal.style.display = "flex";
}
return !check;
}
function toggleMensaje(texto, textoEncriptado){
if(checkString(texto) && texto != ""){
if(mensajeEncontrado.classList.contains('aside__content--none')){
mensajeEncontrado.classList.toggle('aside__content--none');
ningunMensaje.classList.toggle('aside__content--none');
}
mensajeEncriptado.innerHTML = textoEncriptado;
}
}
modalButton.addEventListener('click', function(e){
e.preventDefault();
modal.style.display = "none";
});
encriptar.addEventListener('click', function(e){
e.preventDefault();
toggleMensaje(mensaje.value, encriptarTexto(mensaje.value, llaves));
})
desencriptar.addEventListener('click', function(e){
e.preventDefault();
toggleMensaje(mensaje.value, encriptarTexto(mensaje.value, reversedLlaves));
})
copiarMensaje.addEventListener('click', () => {
navigator.clipboard.writeText(mensajeEncriptado.innerHTML);
})