如何创建一个验证密码的函数,如果满足所有要求则为 return 1,如果不满足则为 0?
How do I make a function that validates a password and return 1 if it fulfills all requirements and 0 if it doesn't?
我想在 JS 中创建一个验证密码的函数。密码最少8个,最多32个字符,至少一个大写字母,一个小写字母和一个数字。此外,它应该 return 满足所有要求时为 1,不满足时为 0。
我的程序 return 是一个布尔值,但即使它为真,它也保持 returning 0。我该怎么办?
var validatePassword = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])([0-9a-zA-Z]{8,32})$/
console.log(validatePassword.test("Password10"))
if (validatePassword == true) {
console.log("1")
}
else {
console.log("0")
}
const pattern = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])([0-9a-zA-Z]{8,32})$/
function validate(password){
return pattern.test(password) ? 1 : 0;
}
console.log(validate("Password10"))
您正在验证编译后的正则表达式变量是否存在。
这个有效:
var passRegex = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])([0-9a-zA-Z]{8,32})$/
function isPasswordValid(p) {
return passRegex.test(p) ? 1 : 0;
}
console.log(isPasswordValid("Password10"));
console.log(isPasswordValid("Pass0"));
您忘记将 test
方法的结果保存到变量中,而将其放入 if 中。这就是为什么即使它是 true
它也不会进入 if 语句。先将它保存到变量中,然后比较 in if 这样
var validatePassword = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])([0-9a-zA-Z]{8,32})$/
let result = validatePassword.test("Password10")
console.log(result)
if (result == true) {
console.log("1")
} else {
console.log("0")
}
我想在 JS 中创建一个验证密码的函数。密码最少8个,最多32个字符,至少一个大写字母,一个小写字母和一个数字。此外,它应该 return 满足所有要求时为 1,不满足时为 0。
我的程序 return 是一个布尔值,但即使它为真,它也保持 returning 0。我该怎么办?
var validatePassword = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])([0-9a-zA-Z]{8,32})$/
console.log(validatePassword.test("Password10"))
if (validatePassword == true) {
console.log("1")
}
else {
console.log("0")
}
const pattern = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])([0-9a-zA-Z]{8,32})$/
function validate(password){
return pattern.test(password) ? 1 : 0;
}
console.log(validate("Password10"))
您正在验证编译后的正则表达式变量是否存在。
这个有效:
var passRegex = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])([0-9a-zA-Z]{8,32})$/
function isPasswordValid(p) {
return passRegex.test(p) ? 1 : 0;
}
console.log(isPasswordValid("Password10"));
console.log(isPasswordValid("Pass0"));
您忘记将 test
方法的结果保存到变量中,而将其放入 if 中。这就是为什么即使它是 true
它也不会进入 if 语句。先将它保存到变量中,然后比较 in if 这样
var validatePassword = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])([0-9a-zA-Z]{8,32})$/
let result = validatePassword.test("Password10")
console.log(result)
if (result == true) {
console.log("1")
} else {
console.log("0")
}