如何使用 joi 模式在反应 js 中进行密码验证?
How to do Password validation in react js using joi schema?
我想验证密码规则为:
密码长度应为8个字符,应包含1个大写字母和1个小写字母,1个数字和1个特殊字符。
password: new passwordComplexity({
min: 8,
max: 25,
lowerCase: 1,
upperCase: 1,
numeric: 1,
symbol: 1,
}),
password: Joi.string()
.min(8)
.max(25)
.required()
.label("Password")
.error((errors) => {
errors.forEach((err) => {
switch (err.type) {
case "any.empty":
err.message = passwordRequired;
break;
case "string.min":
err.message = passwordInvalid;
break;
case "string.max":
err.message = passwordInvalidMax;
break;
default:
}
});
return errors;
}),
我尝试了这些,但我猜 passwordComplexity 仅适用于节点 js。有什么帮助吗?
您可以尝试使用 Regex 并传入模式
Joi.string().pattern(new RegExp('^[a-zA-Z0-9]{3,30}$'))
有关如何使用 Regex 的更多信息:https://regexone.com/
感谢您的帮助。但是,我找到了一个解决方案:
password: Joi.string()
.min(8)
.max(25)
.regex(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/,
'password')
我想验证密码规则为: 密码长度应为8个字符,应包含1个大写字母和1个小写字母,1个数字和1个特殊字符。
password: new passwordComplexity({
min: 8,
max: 25,
lowerCase: 1,
upperCase: 1,
numeric: 1,
symbol: 1,
}),
password: Joi.string()
.min(8)
.max(25)
.required()
.label("Password")
.error((errors) => {
errors.forEach((err) => {
switch (err.type) {
case "any.empty":
err.message = passwordRequired;
break;
case "string.min":
err.message = passwordInvalid;
break;
case "string.max":
err.message = passwordInvalidMax;
break;
default:
}
});
return errors;
}),
我尝试了这些,但我猜 passwordComplexity 仅适用于节点 js。有什么帮助吗?
您可以尝试使用 Regex 并传入模式
Joi.string().pattern(new RegExp('^[a-zA-Z0-9]{3,30}$'))
有关如何使用 Regex 的更多信息:https://regexone.com/
感谢您的帮助。但是,我找到了一个解决方案:
password: Joi.string()
.min(8)
.max(25)
.regex(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/,
'password')