-1

我对js很陌生。这是我第一次尝试有用的东西。这个概念很简单:准备一个 json 数组,然后 foreach 循环遍历它。如果它在一个循环中失败,则打印一条错误消息。我试图运行这段代码,但没有任何反应:

var pass = ji3or;
function passCheck {
 var variations = {
                    digits:{ /\d/.test(pass),errorMsg:"Must contain at least 1 digit!"},
                    lower: {/[a-z]/.test(pass),errorMsg:"Must contain at least 1 lower case letter!"},
                    upper: {/[A-Z]/.test(pass),errorMsg:"Must contain at least 1 upper case letter!"},
                    nonWords:{ /\W/.test(pass),errorMsg:"Must contain at least 1 non-letter symbol e.g. "@"!"},
                }

            for (var check in variations) {
                 variations[check] == true ?  : document.write(check.errorMsg);
                }
            }   
           }
           passCheck(); 
4

2 回答 2

1

您的代码中有几个语法错误!- 缺少引号、太多括号等...

尽管如此,下面是打印您想要的行为的更正代码片段:

var pass = "ji3or"; // strings need to be wrapped in quotes

function passCheck(pass) { // pass a variable to the function instead of relying on the global one
    var variations = {
        // add a proper key to reference it later and make it a valid object
        digits: { isValid: /\d/.test(pass), errorMsg: "Must contain at least 1 digit!" },
        lower: { isValid: /[a-z]/.test(pass), errorMsg: "Must contain at least 1 lower case letter!" },
        upper: { isValid: /[A-Z]/.test(pass), errorMsg: "Must contain at least 1 upper case letter!" },
        nonWords:{ isValid: /\W/.test(pass), errorMsg: "Must contain at least 1 non-letter symbol e.g. '@'!" } // use different quotes and not "@" or escape them with \"
    }

    for (var key in variations) {
        if(!variations[key].isValid) // you dont need a ternary operator, just check for a false value
            document.write(variations[key].errorMsg);
    }   
}

passCheck(pass);

于 2018-04-27T14:21:14.967 回答
0

function passCheck(pass){
  if(pass.length<6){
    console.log("password too short")
  }
  else if(!/[A-Z]/.test(pass)){ 
    console.log("must contain uppercase letter")}
    else {
      console.log("all good")
    }
            }   
           
  passCheck("Asadasdasd"); 

你的函数写错了,这不是你通常应该如何验证密码的方式。这是我会怎么做

于 2018-04-27T14:24:12.003 回答