我使用javascript创建了一个简单的密码生成器。
当您单击页面上的按钮时,它会为您创建一个密码并在下面显示。 此密码生成器创建一个包含以下内容的字符串:
来自a-z的8个随机字母。
0-9的2个随机数。
一个字符串数组中的1个随机特殊字符。 (参见数组'chars')。
但是,在您单击按钮几次后,最终将生成一个包含2个特殊字符的密码,其中包含“”。我很困惑,因为这个角色不在chars数组中。
为什么会这样,并且无论如何都要告诉JS不要特别包含那个角色?
function myFunction() {
// create initial arrays.
a = [];
var chars = ['#', '%', '£', '!', '?', '&'];
for (var i = 97; i <= 122; i++) {
a[a.length] = String.fromCharCode(i).toUpperCase();
// create random letters.
var one = a[Math.floor(Math.random() * a.length)];
var two = a[Math.floor(Math.random() * a.length)];
var three = a[Math.floor(Math.random() * a.length)];
var four = a[Math.floor(Math.random() * a.length)];
var five = a[Math.floor(Math.random() * a.length)];
var six = a[Math.floor(Math.random() * a.length)];
var seven = a[Math.floor(Math.random() * a.length)];
var eight = a[Math.floor(Math.random() * a.length)];
// create random numbers.
var int1 = Math.floor(Math.random() * 10);
var int2 = Math.floor(Math.random() * 10);
var ints = int1.toFixed(0) + int2.toFixed(0);
var intsDecimal = int1.toFixed(0) + "." + int2.toFixed(0);
// create random characters, based on array (chars).
var randChar = chars[Math.floor(Math.random() * chars.length).toFixed(0)];
// create variable moving all letters, numbers and characters together.
var c = one + two + three + four + five + six + seven + eight + ints + randChar;
}
// display variable c.
document.getElementById('userPass').innerHTML = c;
}
<p>Using simple JS to create a random password.</p>
<button onclick="myFunction()">CLICK</button>
<h4>Your password is:</h4>
<h3 id="userPass"></h3>