当前位置: 首页 > 知识库问答 >
问题:

JavaScript密码生成器数字问题

贺方伟
2023-03-14

我刚刚开始一个编码训练营,对于我们的第三个作业,我们必须编写一个带有一些用户偏好的随机密码生成器。我写了我的代码,除了一位之外,一切都可以工作。当用户只选择数值时,会出现错误,我的字符选择池告诉我“pSelection.charAt不是GeneratePWD的函数”。

考虑到该函数在其他任何情况下都能完美工作,这对我来说毫无意义。我尝试为失败的特定(else-if)语句创建一个单独的数组。我尝试过在“Char”冲突的情况下交换变量名。

如果有人能看一看,告诉我我做错了什么,我会感谢你的帮助,因为我以为我明白发生了什么,但显然不是...

下面是JavaScript-下面是HTML

// Add event listener to the generate button
document.getElementById("generate").addEventListener("click", function(){

// Setting up the possible Characters
  var lowercaseAlphabetChar = ("abcdefghijklmnopqrstuvwxyz");
  var uppercaseAlphabetChar = ("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
  var numericChar = (1234567890);
  var specialChar = ("!@#$%^&*()?~/|:'><");
  var password = "";
  var pSelection = "";

// User Prompts
  var length = prompt("How long is your Password? Choose between 8 and 128 Characters");

// Making sure User Chooses between 8 and 128 Characters
  if (length < 8 || length > 128){
    alert("Length has to be Between 8 and 128. Please Try Again")
    return
  }

  var wantsLower = confirm("Do you want Lowercase Characters?")
  var wantsUpper = confirm("Do you want Uppercase Characters?")
  var wantsNumbers = confirm("Do you want Numerical Characters?")
  var wantsSpecial = confirm("Do you want Special Characters?")

//Verification Points System - I allocate a point when an option is confirmed. if no points are allocated, user has not selected anything
  var verify = 0;

  if (wantsLower == true || wantsUpper == true || wantsNumbers == true || wantsSpecial == true) {
    verify += 1;
  }

  if (verify == 0) {
    alert("You have not selected a character Type, Please Try again.")
    return
  }

// Script will exit if not verified, if verified we Proceed to Grouping Password to User Needs.
  function generatePWD() {
    for (var i = 0; i <= length; i++) {
      password = password + pSelection.charAt(Math.floor(Math.random() * Math.floor(pSelection.length - 1)));
    }
  }

// IF STATEMENTS for User PreferenceLowerCase
  if (wantsLower && !wantsUpper && !wantsNumbers && !wantsSpecial) {
    pSelection = lowercaseAlphabetChar;
    generatePWD();
  }
// LowerCase and UpperCase
  else if (wantsLower && wantsUpper && !wantsNumbers && !wantsSpecial) {
    pSelection = lowercaseAlphabetChar + uppercaseAlphabetChar;
    generatePWD();
  }

//LowerCase and UpperCase and Numbers
  else if (wantsLower && wantsUpper && wantsNumbers && !wantsSpecial) {
    pSelection = lowercaseAlphabetChar + uppercaseAlphabetChar + numericChar;
    generatePWD();
  }
// Everything
  else if (wantsLower && wantsUpper && wantsNumbers && wantsSpecial) {
    pSelection = lowercaseAlphabetChar + uppercaseAlphabetChar + numericChar + specialChar;
    generatePWD();
  }
//Lowercase and Numbers
  else if (wantsLower && !wantsUpper && wantsNumbers && !wantsSpecial) {
    pSelection = lowercaseAlphabetChar + numericChar;
    generatePWD();
  }
//Lowercase and Numbers and Special
  else if (wantsLower && !wantsUpper && wantsNumbers && wantsSpecial) {
    pSelection = lowercaseAlphabetChar + numericChar + specialChar;
    generatePWD();
  }
// Lowercase and Special
  else if (wantsLower && !wantsUpper && !wantsNumbers && wantsSpecial) {
    pSelection = lowercaseAlphabetChar + specialChar;
    generatePWD();
  }
// Uppercase
  else if (!wantsLower && wantsUpper && !wantsNumbers && !wantsSpecial) {
    pSelection = uppercaseAlphabetChar;
    generatePWD();
  }
// UpperCase and Numbers
  else if (!wantsLower && wantsUpper && wantsNumbers && !wantsSpecial) {
    pSelection = uppercaseAlphabetChar + numericChar;
    generatePWD();
  }

// Uppercase and Numbers and Special
  else if (!wantsLower && wantsUpper && wantsNumbers && wantsSpecial) {
    pSelection = uppercaseAlphabetChar + numericChar + specialChar;
    generatePWD();
  }
// Uppercase and Special
  else if (!wantsLower && wantsUpper && !wantsNumbers && wantsSpecial) {
    pSelection = uppercaseAlphabetChar + specialChar;
    generatePWD();
  }
// Numbers
  else if (!wantsLower && !wantsUpper && wantsNumbers && !wantsSpecial) {
    pSelection = numericChar;
    generatePWD();
  }
// Numbers and Special
  else if (!wantsLower && !wantsUpper && wantsNumbers && wantsSpecial) {
    pSelection = numericChar + specialChar;
    generatePWD();
  }
// Special
  else if (!wantsLower && !wantsUpper && !wantsNumbers && wantsSpecial) {
    pSelection = specialChar;
    generatePWD();
  }
  document.getElementById("password").innerHTML = password;
  console.log(password);

});

HTML

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Password Generator</title>
    <link rel="stylesheet" href="assets/style.css" />
  </head>
  <body>
    <div class="wrapper">
      <header>
        <h1>Password Generator</h1>
      </header>
      <div class="card">
        <div class="card-header">
          <h2>Generate a Password</h2>
        </div>
        <div class="card-body">
          <textarea
            readonly
            id="password"
            placeholder="Your Secure Password"
            aria-label="Generated Password"
          ></textarea>
        </div>
        <div class="card-footer">
          <button id="generate" class="btn">Generate Password</button>
        </div>
      </div>
    </div>





    <script src="assets/script.js"></script>
  </body>
</html>

共有1个答案

沃弘图
2023-03-14

numicChar需要是一个字符串,即"1234567890"-因为它是,您已经用一个数字初始化了它。

如果将变量的声明更改为

var numericChar=“1234567890”

那么它应该可以工作:)

 类似资料:
  • 我正在尝试创建一个创建密码的java程序,无论是所有小写、小写和大写、小写和大写和数字、小写和大写以及数字和标点符号,该程序还必须创建用户选择的密码之一,并且必须根据用户选择的内容生成密码长度。我已经生成了密码选项供用户选择,并提示他选择一个。我现在被困在如何创建上面提到的密码类型上。一个人建议我使用ASCII值,然后将它们转换为文本。我知道如何将它们转换为文本,但它会显示数字、字母和标点符号。有

  • <?php $pw='simplewind'; $afpw=sp_password($pw);//加密字符串 echo $afpw;//输出加密后的字符串 ?>

  • 问题内容: 我需要在TSQL中创建一个新密码,该密码必须为8个字符(az),必须包含大写和小写以及至少一个数字。 谁能帮我这个? 问题答案:

  • 我正在尝试构建一个密码生成器,该生成器创建符合以下条件的密码: 最小长度为8个字符,最大长度为40个字符 我在回避数学。随机选择,我更喜欢加密选项。 我已经通过了大量的文章,试图让这个工作,但我有以下问题: > 随机空格似乎出现在输出字符串中,通常在末尾。 输出值有时不符合min 8 char规则。 我意识到我可能有太多额外的if语句重复检查事情,但我很难看到哪里出了问题。 这是为了进入另一个系统

  • cmf_get_verification_code($account, $length = 6) 功能 检查手机或邮箱是否还可以发送验证码,并返回生成的验证码 参数 $account: string 手机或邮箱 $length: int 验证码位数,支持4,6,8 返回 string 数字验证码

  • 本文向大家介绍Python生成随机密码,包括了Python生成随机密码的使用技巧和注意事项,需要的朋友参考一下 本人  python新手,使用的环境是python2.7,勿喷 以上就是本文的全部内容了,希望对大家学习python能够有所帮助。