Link do projeto https://deyvid-22.github.io/oracle-challenge-decoder/
Este é um projeto simples em JavaScript para criptografar e descriptografar texto substituindo vogais por palavras específicas e vice-versa. O projeto foi desenvolvido como parte de um desafio e inclui funcionalidades básicas como interação com o DOM e cópia do resultado para a área de transferência.
- Criptografar: Substitui vogais por palavras específicas definidas em um objeto.
- Descriptografar: Reverte a operação de criptografia.
- Cópia para Área de Transferência: Permite copiar o resultado final para a área de transferência.
O projeto é estruturado nos seguintes arquivos principais:
- index.html: Arquivo HTML que contém a estrutura básica da página web, incluindo os elementos de entrada de texto e botões para interação.
- script.js: Arquivo JavaScript responsável por implementar a lógica de criptografia, descriptografia e interação com o DOM. Ele também contém funções auxiliares para manipulação de classes CSS e cópia de texto para a área de transferência.
- Criptografar: Insira um texto na caixa de texto e clique no botão "Criptografar". As vogais serão substituídas pelas palavras correspondentes.
- Descriptografar: Para reverter o texto criptografado, insira o texto criptografado na caixa de texto e clique no botão "Descriptografar".
- Cópia para Área de Transferência: Após obter o texto desejado, clique no botão "Copiar Resultado" para copiá-lo para a área de transferência.
document.querySelector(".criptografar").addEventListener("click", () => {
const vogalParaCripto = {'e':'enter', 'i': 'imes', 'a': 'ai', 'o': 'ober', 'u': 'ufat'};
const regex = /(a|e|i|o|u)/g;
let text = document.querySelector("textarea").value;
let result = decode(text, vogalParaCripto, regex);
addClass(".card-container", ".display-result");
addText(result);
});
document.querySelector(".descriptografar").addEventListener("click", () => {
const criptoParaVogal = {enter: 'e', imes: 'i', ai: 'a', ober: 'o', ufat: 'u'};
const regex = /(enter|imes|ai|ober|ufat)/g;
let text = document.querySelector("textarea").value;
let result = decode(text, criptoParaVogal, regex);
addClass(".card-container", ".display-result");
addText(result);
});
document.querySelector(".copy").addEventListener("click", () => {
addClass(".display-result", ".card-container");
copy();
});
function decode(text, fun, regex) {
let textoDescriptografado = text.replace(regex, (match) => fun[match]);
return textoDescriptografado;
}
function addClass(add, remove) {
document.querySelector(add).classList.add("display");
document.querySelector(remove).classList.remove("display");
}
function addText(text) {
if (!text) return alert("Preencha os campos necessários.");
document.querySelector("textarea").value = "";
document.querySelector(".display-result > p").innerHTML = text;
}
function copy() {
let text = document.querySelector(".display-result > p").textContent;
navigator.clipboard.writeText(text);
}