这是一个密码验证Java脚本。我每次运行时都会收到错误(isPasswordValid(' Ggtrt54r $'))函数。 我给了UpperCase,LowerCase,8个字符和特殊字符asPasswordValid输入。但每次我得到"('密码无效需要特殊字符')"错误。我的代码无法通过最后的要求。任何人都可以检查,让我知道我在这里做错了什么。
从这里开始
//主要功能
function isPasswordValid(input){
if (hasUpperCase(input) && hasLowerCase(input) && isLongEnough(input) && hasSpecialCharacter(input)) {
console.log('Code works fine !!');
} else if (!hasUpperCase(input)) {
console.log('Password Invalid Needs Uppercase');
}else if (!hasLowerCase(input)) {
console.log('Password Invalid needs lowercase');
} else if (!isLongEnough(input)) {
console.log('Password Invalid needs 8 Characters');
} else if (!hasSpecialCharacter(input)) {
console.log('Password Invalid needs Special Characters');
}
}
function hasUpperCase (input){
for (var i = 0; i < input.length; i++){
if(input[i] === input[i].toUpperCase()){
return true;
}
}
}
function hasLowerCase(input){
for(var i = 0; i < input.length; i++){
if (input[i] === input[i].toLowerCase()){
return true;
}
}
}
function isLongEnough(input){
for(var i = 0; i < input.length; i++){
if (input.length === 8){
return true;
}
}
}
function hasSpecialCharacter(input){
var specialCharacters = ['!', '@', '#', '$', '%', '^', '&', '*'];
for(var i = 0; i < input.length; i++){
for(var j = 0; j < specialCharacters.length; j++){
}
if (input[i] === specialCharacters[j]){
return true;
}
}
}
isPasswordValid('Ggtrt54r$');
$ 是这里的空间角色,但每次给我错误都需要特殊字符。任何人都可以帮助我。
答案 0 :(得分:1)
for(var j = 0; j < specialCharacters.length; j++){ } if (input[i] === specialCharacters[j]){ return true; }
我认为你的意思是:
for(var j = 0; j < specialCharacters.length; j++){
if (input[i] === specialCharacters[j]){
return true;
}
}
答案 1 :(得分:0)
试试这个: 2个错误
它匹配
一起使用8
字符以上,所以与if (input.length >= 8){
for循环是问题。你在循环之后应用条件。所以 像这样在循环内部改变
for(var i = 0; i < input.length; i++){ for(var j = 0; j < specialCharacters.length; j++){ if (input[i] === specialCharacters[j]){ return true; } }
function isPasswordValid(input){
if (hasUpperCase(input) && hasLowerCase(input) && isLongEnough(input) && hasSpecialCharacter(input)) {
console.log('Code works fine !!');
}else if(!hasUpperCase(input)){
console.log('Password Invalid Needs Uppercase');}
else if(!hasLowerCase(input)){
console.log('Password Invalid needs lowercase');}
else if(!isLongEnough(input)){
console.log('Password Invalid needs 8 Characters');
}else if(!hasSpecialCharacter(input)){
console.log('Password Invalid needs Special Characters');}
}
function hasUpperCase (input){
for (var i = 0; i < input.length; i++){
if(input[i] === input[i].toUpperCase()){
return true;
}
}
}
function hasLowerCase(input){
for(var i = 0; i < input.length; i++){
if (input[i] === input[i].toLowerCase()){
return true;
}
}
}
function isLongEnough(input){
for(var i = 0; i < input.length; i++){
if (input.length >= 8){
return true;
}
}
}
function hasSpecialCharacter(input){
var specialCharacters = ['!', '@', '#', '$', '%', '^', '&', '*'];
for(var i = 0; i < input.length; i++){
for(var j = 0; j < specialCharacters.length; j++){
if (input[i] === specialCharacters[j]){
return true;
}
}
}
}
isPasswordValid('Ggtrt54r$');