-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.js
149 lines (135 loc) · 5.44 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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
/* Obtener acceso a los campos */
let campoTexto = document.querySelector("#campo-texto");
let campoTextoConvertido = document.querySelector("#texto-convertido");
let sinMensaje = document.querySelector(".sinmensaje");
let conMensaje = document.querySelector(".conmensaje");
/* Matriz para la conversión*/
let matriz_conversion=[
["e", "enter"],
["i","imes"],
["a","ai"],
["o", "ober"],
["u", "ufat"],
];
let matriz_conversion_may=[
["E"],
["I"],
["A"],
["O"],
["U"],
];
/* Al comenzar se solicita el ingreso del texto */
sinMensaje.style.display = "block";
conMensaje.style.display = "none";
/* Limpiar los campos de texto cuando corresponda*/
campoTexto.addEventListener("click", limpiar);
/* Preparar el botón Copiar */
let btnCopiar = document.querySelector('#boton-copiar');
btnCopiar.addEventListener("click", copiar = () => {
let contenido = document.querySelector("#texto-convertido").value;
navigator.clipboard.writeText(contenido).then(()=>{
alert('El texto ha sido copiado!')
},()=>{
alert('No se pudo copiar el texto')
});
});
function encriptar(){
/* Obtener el texto a convertir */
let texto = campoTexto.value;
/* Guardar el texto convertido a devolver */
let textoConvertido = texto;
/* Validar que haya texto para encriptar */
if (texto.length == 0){
alert("Por favor, ingrese el texto a encriptar");
document.getElementsByClassName("sinmensaje")[0].style.display = "block"
let aviso = document.getElementsByClassName("dosfrases")[0];
aviso.innerHTML = red;
} else {
if (validar(texto) == false){
alert("Por favor, sólo ingrese letras minúsculas y sin acento");
limpiar();
texto = "";
}else{
/* Recorrer cada uno de los caracteres de la matriz de conversión.
Si existe en el texto, se reemplazarán todas sus apariciones
con el valor que corresponde según la matriz. */
for (let i=0; i<matriz_conversion.length ; i++){
if (texto.includes(matriz_conversion[i][0])){
texto=texto.replaceAll(matriz_conversion[i][0],matriz_conversion[i][1]);
}
}
sinMensaje.style.display = "none";
conMensaje.style.display = "block";
campoTextoConvertido.innerHTML = texto;
campoTextoConvertido.value = texto;
}
}
return texto;
}
function desencriptar(){
/* Obtener el texto a convertir */
let texto = campoTexto.value;
/* Validar que haya texto para encriptar */
if (texto.length == 0){
alert("Por favor, ingrese el texto a desencriptar");
document.getElementsByClassName("sinmensaje")[0].style.display = "block"
let aviso = document.getElementsByClassName("dosfrases")[0];
aviso.innerHTML = red;
} else {
/* Recorrer cada uno de los caracteres de la matriz de conversión.
Si existe en el texto, se reemplazarán todas sus apariciones
con el valor que corresponde según la matriz.
Se cambia por mayúsculas para evitar que se superpongan transformaciones.
Ejemplo: james*/
for (let i=0; i<matriz_conversion.length ; i++){
if (texto.includes(matriz_conversion[i][1])){
texto=texto.replaceAll(matriz_conversion[i][1],matriz_conversion_may[i][0]);
}
}
texto = texto.toLowerCase();
console.log(texto);
sinMensaje.style.display = "none";
conMensaje.style.display = "block";
campoTextoConvertido.innerHTML = texto;
campoTextoConvertido.value = texto;
}
return texto;
}
function limpiar(){
/*Si se da click en el campo texto luego de una conversión,
se procede a limpiar el campo a convertir y el campo convertido*/
campoTexto.value = "";
campoTextoConvertido.value = "";
campoTexto.innerHTML = "";
campoTextoConvertido.innerHTML = "";
sinMensaje.style.display = "block";
conMensaje.style.display = "none";
}
function validar(texto){
/*Función que valida si todos los campos tienen un contenido.
Devuelve true o false dependiendo del resultado.*/
/*Comprobar que no esté vacío el texto a convertir*/
if ((texto == "") ){
alert ("Falta ingresar el texto");
return false;
}else{
return validarLetras(texto);
}
}
function validarLetras(texto){
/* Función que verifica que la cadena solo contenga letras.
Si es así devuelve verdadero, caso contrario falso.*/
let codigoAscii = 0;
for (let i = 0 ; i < texto.length ; i++){
codigoAscii = texto.charCodeAt(i);
/* Si el código ASCII de la letra está entre a=97 y z=122 */
if ((codigoAscii > 96 && codigoAscii < 121) || (codigoAscii == 32)){
/* Si encuentra una letra minúscula, sigue comparando*/
continue;
} else {
/* Si encuentra algo diferente a una letra minúscula, retorna falso*/
return false;
}
}
return true;
}