Hola, como estás?
Yo utilicé JavaScript puro, lo único es que puse la lógica de encriptar, desencriptar y validar el texto dentro de un objeto, y las llamo como métodos.
En tu función validar, la variable "ok" se inicializa en "false", pero no se usa en la lógica del código hasta que se le asigna un nuevo valor. Esta variable no es necesaria es suficiente con retornar true
o false
, en caso de que sea o no un texto válido. Puedes también quitar la variable de referencia del parrafo1 de dentro la función y ponerlo en el topo de tu código, ya que ella es usada varias veces en tu código, entonces no es necesario y ni bueno tener que declararlo toda vez que la función es llamada.
function validar(texto) {
var regExp = /[A-ZáéíóúÁÉÍÓÚ]/;
if (regExp.test(texto)) {
return false;
} else {
return true;
}
}
Al llamar validar();
debes pasar el parrafo1
que antes estaba declarado dentro de la función, validar(parrafo1);
.
Yo creo también que deberías separar la lógica de encriptar de la lógica de desencriptar, porque generalmente buscamos hacer con que una función realice apenas un objetivo, cuando vemos que nuestra función está realizando demasiadas acciones buscamos dividirlas en otras funciones. Esto se debe porque queremos que nuestro código sea de fácil mantenimiento. Nosotros podemos volver años después a mirar este código y puede ser que no entendamos fácilmente lo que hicimos o que otra persona tenga que dar el mantenimiento y si nuestro código no es de fácil comprensión le costara trabajo.
function encriptar (texto) {
const textoEncriptado = texto
.replace(/e/g, "enter")
.replace(/i/g, "imes")
.replace(/a/g, "ai")
.replace(/o/g, "ober")
.replace(/u/g, "ufat");
return textoEncriptado;
}
En esta función el texto que será encriptado es pasado como parámetro. Luego usamos el método replace, en JavaScript, métodos pueden ser encadenados, como no es una lista muy grande de letras que deben ser sustituidas no veo la necesidad de usar un bucle. Como aquí estamos usando expresiones regulares el replaceAll no es necesario, apenas pasamos la letra que queremos cambiar por el código y pasamos al final de la expresión la letra g que significa que queremos cambiar todas las partes del texto que esta letra aparece, como tenemos un método tras otro así que termina uno él empieza el otro usando el mismo texto, y al final guarda el texto dentro de la constante textoEncriptado y retornamos el texto encriptado.
Así puedes ir buscando en tu código como ir mejorando.
Y cuanto a las inconsistencias es que en tú página al presionar encriptar la entrada de texto congela y yo no puedo escribir nada más después y también si yo presiono copiar y luego desencriptar se genera 2 botones. También está permitiendo el usuario mover la caja de texto lo que no es una buena idea, pues cambia la apariencia de la página.
Hay algunos bugs a solucionar, pero creo que estás en buen camino, cualquier duda que tengas no dejes de preguntar.
¡Saludos!
Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios