javascript - 如何使用 if else 条件替换字符串

标签 javascript if-statement

我在 about:blank on chrome 页面上做这个项目,这意味着除了涉及 JavaScript 之外没有其他代码。

我正在尝试用我所拥有的知识来制作一个加密算法。这是到目前为止的代码:

function main() {
    var input = prompt("Enter a string")
    if (input.substring(0, 1) == "a") {
      var _01 = "a"
      var _01new = _01.replace("a", "1")
    }
    else if (input.substring(0, 1) == "b") {
      var _01 = "b"
      var _01new = _01.replace("b", "2")
    }
    else if (input.substring(0, 1) == "c") {
      var _01 = "c"
      var _01new = _01.replace("c", "3")
    }
    else if (input.substring(0, 1) == "d") {
      var _01 = "d"
      var _01new = _01.replace("d", "4")
    }
    else if (input.substring(0, 1) == "e") {
      var _01 = "e"
      var _01new = _01.replace("e", "5")
    }
    else if (input.substring(0, 1) == "f") {
      var _01 = "f"
      var _01new = _01.replace("f", "6")
    }
    else if (input.substring(0, 1) == "g") {
      var _01 = "g"
      var _01new = _01.replace("g", "7")
    }
    else if (input.substring(0, 1) == "h") {
      var _01 = "h"
      var _01new = _01.replace("h", "8")
    }
    else if (input.substring(0, 1) == "i") {
      var _01 = "i"
      var _01new = _01.replace("i", "9")
    }
    else if (input.substring(0, 1) == "j") {
      var _01 = "j"
      var _01new = _01.replace("j", "10")
    }
    else if (input.substring(0, 1) == "k") {
      var _01 = "k"
      var _01new = _01.replace("k", "11")
    }
    else if (input.substring(0, 1) == "l") {
      var _01 = "l"
      var _01new = _01.replace("l", "12")
    }
    else if (input.substring(0, 1) == "m") {
      var _01 = "m"
      var _01new = _01.replace("m", "13")
    }
    else if (input.substring(0, 1) == "n") {
      var _01 = "n"
      var _01new = _01.replace("n", "14")
    }
    else if (input.substring(0, 1) == "o") {
      var _01 = "o"
      var _01new = _01.replace("o", "15")
    }
    else if (input.substring(0, 1) == "p") {
      var _01 = "p"
      var _01new = _01.replace("p", "16")
    }
    else if (input.substring(0, 1) == "q") {
      var _01 = "q"
      var _01new = _01.replace("q", "17")
    }
    else if (input.substring(0, 1) == "r") {
      var _01 = "r"
      var _01new = _01.replace("r", "18")
    }
    else if (input.substring(0, 1) == "s") {
      var _01 = "s"
      var _01new = _01.replace("s", "19")
    }
    else if (input.substring(0, 1) == "t") {
      var _01 = "t"
      var _01new = _01.replace("t", "20")
    }
    else if (input.substring(0, 1) == "u") {
      var _01 = "u"
      var _01new = _01.replace("u", "21")
    }
    else if (input.substring(0, 1) == "v") {
      var _01 = "v"
      var _01new = _01.replace("v", "22")
    }
    else if (input.substring(0, 1) == "w") {
      var _01 = "w"
      var _01new = _01.replace("w", "23")
    }
    else if (input.substring(0, 1) == "x") {
      var _01 = "x"
      var _01new = _01.replace("x", "24")
    }
    else if (input.substring(0, 1) == "y") {
      var _01 = "y"
      var _01new = _01.replace("y", "25")
    }
    else if (input.substring(0, 1) == "z") {
      var _01 = "z"
      var _01new = _01.replace("z", "26")
    }
    else (input.substring(0, 1) == " ")
    {
      var _01 = " "
      var _01new = _01.replace(" ", "27")
    }

    alert(_01new)
}  

main()

我知道有很多代码,我将对其进行简化,但首先我会尝试让它发挥作用。

我想做的是,当用户输入一个字符串(当前为 1 个字母)时,它将找到第一个字母的值,检测它是什么,并将 _01 的值设置为用户输入的任何值,然后使用 _01.replace 将字母替换为其分配的值(当前为字母数值)。

最佳答案

您的逻辑将因多个字符而失败。
只有当且仅当用户输入 one 字符时,您的 encode(/decode) 想法才能发挥作用。

如果用户输入 say "mm" 作为字符串会怎样。它被编码为 "1313",你永远不知道如何正确解码它(好吧,除非你使用数组 [13,13] 或其他一些加密法术;) )
我会把这个留给你。

现在,一个字符的答案/建议 - 到 - 数字...

// Create an Object literal with mapped character replacements
var map = {
  "a" : 1,  // Or use some other fancy UTF8 characters or shuffle the order
  "b" : 2,
  "c" : 3,
  // and so on...
  "y" : 25,
  "z" : 26,
  " " : 27
}

function main() {

    var input = prompt("Enter a character!");
    var encrypted = -1; // Fallback number. (If no replacement found in our `map`)

    // check if `map` has this "character" property
    if ( map.hasOwnProperty(input[0]) ) {
        // get the value from our map,
        // where `input[0]` represents the first character
        encrypted = map[input[0]];
    }

    alert( encrypted ); // Will alert the replacement number or log -1 as fallback
}  

main()
TRY USING ONLY ONE OF: "a b c y z (space)"


这里有一些更简单的东西——但也不太安全;) 您可以使用 btoa()MDNstring 转换为 base64 - 当你想阅读“ secret 消息”时,你可以简单地做btoa()MDN在编码字符串上

function main() {

    var input = prompt("Enter a string!").trim();
    var encode = btoa( input ); // String to base64
    var decode = "";
    
    if ( !encode )  return; // Do nothing if nothing valid was entered
    
    alert( encode );
    
    // Whenever you want to reveal your secret message:
    decode = atob( encode );
    alert( "Hey I can also decode! Here you go:\n"+ decode);

}  

main()


我看到你对这类东西感兴趣...所以谷歌,了解密码和其他加密算法。从探索基本的开始:

关于javascript - 如何使用 if else 条件替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48231568/

相关文章:

php - if else语句与mysql表? - PHP

python - 尝试根据条件语句编写二进制变量

Java:为什么 else 语句总是在我的 while 循环中运行?

javascript - jquery 事件已记录。它是如何工作的?

javascript - 指令仅被调用一次

javascript - 嵌套的 JavaScript 函数

javascript - 如果 jQuery AJAX 请求成功/失败,则执行条件代码

ios - 对象 C : Checking against an integer in NSUserDefaults

javascript - 运行多个变量=函数()并知道它们何时完成的最干净的方法是什么

javascript - 获取某些文本替换它并将其包装在跨度中?