Escribí un cifrado de sustitución simple usando un diccionario para las claves/valores que contienen letras, números y algunos símbolos. Sin embargo, no pude encontrar una manera de implementar una clave/valor para "ingresar" (nueva línea). ¿Hay alguna manera de que funcione como un valor de diccionario o me obligaría a volver a escribir el código de una manera diferente?
Además, en una pregunta completamente diferente, ¿es posible crear un diccionario en JS usando expresiones regulares en lugar de insertar un valor clave único para cada entrada? Como se veria eso?
Así es como lo he hecho:
//Substitution function let caseString = message.value.toUpperCase().split(""); let newString = []; for (let unit of caseString) { for (let letter in alphabet) { if (unit === alphabet[letter]) { newString.push(alphabet[unit]); } } } cipher.value = newString.join(""); //Dictionary object holding the alphabet keys & values const alphabet = { A: "Z", B: "Y", C: "X", D: "W", E: "V", F: "U", G: "T", H: "S", I: "R", J: "Q", K: "P", L: "O", M: "N", N: "M", O: "L", P: "K", Q: "J", R: "I", S: "H", T: "G", U: "F", V: "E", W: "D", X: "C", Y: "B", Z: "A", " ": " ", "-": "-", _: "_", "!": "!", ":": ":", ";": ";", "'": "'", '"': '"', $: "$", "%": "%", "&": "&", "*": "*", "(": "(", ")": ")", "@": "@", 1: "1", 2: "2", 3: "3", 4: "4", 5: "5", 6: "6", 7: "7", 8: "8", 9: "9", 0: "0", };Soy consciente de que podría ser un enfoque tonto, pero quería practicar y ver si realmente podía hacerlo funcionar. ¡Gracias por adelantado!
El carácter de nueva línea se representa con "\n" , por lo que podría agregarlo a su diccionario de esta manera:
{ "\n": "\n" } En cuanto a los diccionarios con expresiones regulares, puede intentar pasar una función de reemplazo a la función .replace() de una cadena. Por ejemplo, esto cambiaría solo letras:
const input = "hello! 123" const replace = { A: "f", B: "a", // ... h: "U", e: "T", l: "A", o: "k", } const result = input.replace( /[Az]/g, letter => replace[letter] ) console.log(result) // <- "UTAAk! 123" Si desea simplificar su algoritmo, consulte las charCodeAt() y fromCharCode() .