0

我需要使用 for 循环向输入到文本框中的字符串添加 2 个随机字母,并在单击按钮时在加密的字符串框中返回。

因此,例如,如果输入了 cat,它可能会像 cynarwtpp 一样返回。我是 for 循环的新手,不确定如何从这里开始,我需要使用一个循环遍历字母数组的 for 循环。任何帮助将不胜感激。

Javascript:

<script type="text/javascript">

 var uncoded_array = uncoded.split("");
 var coded_str = "";
 var alphabet = new    Array("a","b","c","d","e","f","g","h","i","j","k","l","m",
                             "n","o","p","q","r","s","t","u","v","w","x","y","z");
</script>

html:

<form action="">
Enter a String: <input type="text" name="uncoded" ></br>
<input type="button" value="cipher" onClick=document.forms[0].coded.value=    ></br>
Encrypted String: <input type="text" name="coded" ></br>
4

3 回答 3

0

这就是我会做的

html

Enter a String: <input type="text" id="uncoded" />
<input type="button" value="cipher" onclick="cypher(); return false;" />
Encrypted String: <input type="text" id="coded" />

js

function cypher() {
  var coded = document.getElementById('coded');
  var uncoded = document.getElementById('uncoded');
  coded.value = uncoded.value.split('').map(function (char) {
      return char + randomLetter() + randomLetter();
  }).join('');
}

function randomLetter() {
  return Math.random().toString(36).replace(/[^a-zA-Z]/gi, '')[0];
}
于 2013-11-07T04:49:58.100 回答
0

这是一个简单的方法。

1)从这个答案中,我学会了从数组中选择随机元素。

var item1 = alphabet[Math.floor(Math.random()*alphabet.length)];
var item2 = alphabet[Math.floor(Math.random()*alphabet.length)];

在您的情况下,来自数组的 2 个随机字母。

2)在 中for iteration,我取了一个字符串长度并用于在每个字母之后添加随机元素并连接在一起。

var alphabet = new Array("a","b","c","d","e","f","g","h","i","j","k","l","m",
                             "n","o","p","q","r","s","t","u","v","w","x","y","z");


var original = "cat";
var encrypted = "";
for (var i=0; i<original.length; i++ ) {
    var item1 = alphabet[Math.floor(Math.random()*alphabet.length)];
    var item2 = alphabet[Math.floor(Math.random()*alphabet.length)];
    encrypted += original[i] + item1 + item2;    
}
alert(encrypted);

JSFiddle

于 2013-11-07T05:02:48.667 回答
0

这是一个执行字符串操作的简单函数。只需将第一个表单输入的值提供给它,然后将其结果转储到第二个表单输入中。

function cipher(str) {
    var rand, 
        output = '',
        chars  = 'abcdefghijklmnopqrstuvwxyz';

    for (i=0; i<str.length; i++) {
        output += str[i];
        for (j=0; j<2; j++) {
            output += chars[Math.floor(Math.random() * chars.length)];
        }
    }

    return output;
}

cipher('cat');
于 2013-11-07T05:03:02.890 回答