gpt4 book ai didi

javascript - 创建强密码错误

转载 作者:行者123 更新时间:2023-12-02 22:54:34 24 4
gpt4 key购买 nike

我正在这样做problem on hacker earth ,(可以忽略问题)

基本上在下面的代码片段中

function minimumNumber(n, password) {
const mapStrength = {
numberProp: false,
lowerCase: false,
upperCase: false,
specialChar: false
}
// Number of characters less than 6, add those many characters to reach 6 -> The buffer characters
let charRequeiredToMakePasswordStrong = 0
let bufferLength = (6-n) > 0 ? 6-n : 0

console.log(`This is buffer:`, bufferLength)
// Split password and itt
password.split('').forEach(character => {
// Checking if character is number
if (Number.isInteger(character) && !mapStrength.numberProp) mapStrength.numberProp = true
// Checking if character is

if (character.match(/[^a-zA-Z]/) && (character === character.toLowerCase()) && !mapStrength.lowerCase) mapStrength.lowerCase = true
if (character.match(/[^a-zA-Z]/) && (character === character.toUpperCase()) && !mapStrength.upperCase) mapStrength.upperCase = true
if (character.toLowerCase() === character.toUpperCase()) mapStrength.specialChar = true

})
console.log(mapStrength)

// Calculating Number of false
Object.values(mapStrength).forEach(charge => {
if (!charge) charRequeiredToMakePasswordStrong += 1
})

console.log(charRequeiredToMakePasswordStrong, bufferLength)
if (bufferLength > charRequeiredToMakePasswordStrong) return bufferLength
if (charRequeiredToMakePasswordStrong > bufferLength) return charRequeiredToMakePasswordStrong
return bufferLength

}

minimumNumber(3, 'zss');

为什么我的mapStrength.lowerCase结果是假的?在这一行中,我想我设置为 true?

 if (character.match(/[^a-zA-Z]/) && (character === character.toLowerCase()) && !mapStrength.lowerCase) mapStrength.lowerCase = true

最佳答案

通过您的测试:

if (character.match(/[^a-zA-Z]/) && (character === character.toLowerCase()) && !mapStrength.lowerCase) {
mapStrength.lowerCase = true
}

第一个条件仅适用于 character.match(/[^a-zA-Z]/) - 换句话说,如果 character 按字母顺序排列。 [^ 匹配字符集中以下字符之一的任何字符。使用 /[a-z]/i 代替(与 [a-zA-Z] 相同,只是重复较少):

function minimumNumber(n, password) {
const mapStrength = {
numberProp: false,
lowerCase: false,
upperCase: false,
specialChar: false
}
// Number of characters less than 6, add those many characters to reach 6 -> The buffer characters
let charRequeiredToMakePasswordStrong = 0
let bufferLength = (6-n) > 0 ? 6-n : 0

console.log(`This is buffer:`, bufferLength)
// Split password and itt
password.split('').forEach(character => {
// Checking if character is number
if (Number.isInteger(character) && !mapStrength.numberProp) mapStrength.numberProp = true
// Checking if character is

if (character.match(/[a-z]/i) && (character === character.toLowerCase()) && !mapStrength.lowerCase) mapStrength.lowerCase = true
if (character.match(/[a-z]/i) && (character === character.toUpperCase()) && !mapStrength.upperCase) mapStrength.upperCase = true
if (character.toLowerCase() === character.toUpperCase()) mapStrength.specialChar = true

})
console.log(mapStrength)

// Calculating Number of false
Object.values(mapStrength).forEach(charge => {
if (!charge) charRequeiredToMakePasswordStrong += 1
})

console.log(charRequeiredToMakePasswordStrong, bufferLength)
if (bufferLength > charRequeiredToMakePasswordStrong) return bufferLength
if (charRequeiredToMakePasswordStrong > bufferLength) return charRequeiredToMakePasswordStrong
return bufferLength

}

minimumNumber(3, 'zss');
minimumNumber(3, 'zsS');

您只需使用分配给 mapStrength.lowerCase 的单个条件即可使代码更具可读性:

if (character.match(/[a-z]/)) {
mapStrength.lowerCase = true;
}
if (character.match(/[A-Z]/)) {
mapStrength.upperCase = true;
}

function minimumNumber(n, password) {
const mapStrength = {
numberProp: false,
lowerCase: false,
upperCase: false,
specialChar: false
}
// Number of characters less than 6, add those many characters to reach 6 -> The buffer characters
let charRequeiredToMakePasswordStrong = 0
let bufferLength = (6-n) > 0 ? 6-n : 0

console.log(`This is buffer:`, bufferLength)
// Split password and itt
password.split('').forEach(character => {
// Checking if character is number
if (Number.isInteger(character) && !mapStrength.numberProp) mapStrength.numberProp = true
// Checking if character is
if (character.match(/[a-z]/)) {
mapStrength.lowerCase = true;
}
if (character.match(/[A-Z]/)) {
mapStrength.upperCase = true;
}
if (character.toLowerCase() === character.toUpperCase()) mapStrength.specialChar = true

})
console.log(mapStrength)

// Calculating Number of false
Object.values(mapStrength).forEach(charge => {
if (!charge) charRequeiredToMakePasswordStrong += 1
})

console.log(charRequeiredToMakePasswordStrong, bufferLength)
if (bufferLength > charRequeiredToMakePasswordStrong) return bufferLength
if (charRequeiredToMakePasswordStrong > bufferLength) return charRequeiredToMakePasswordStrong
return bufferLength

}

minimumNumber(3, 'zss');
minimumNumber(3, 'zsS');

关于javascript - 创建强密码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58044603/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com