使用Joi进行密码验证



我正在尝试验证用户输入的密码。密码的最小长度应为4,并且应包含字符和数字。我正在使用Join-npm模块进行验证。

app.js代码:

const schema = Joi.object({
email: Joi.string().email().required(),
username: Joi.string().alphanum().min(3).required(),
password: Joi.string().min(4).required(),
});
app.post('/register',async (req,res)=>{
try{
const value = await schema.validateAsync({
email: req.body.email,
username: req.body.username,
password: req.body.password,
});
}catch(e){ 
console.log(e)}
})

如何检查用户密码中是否同时存在字符和数字?我没有在此处使用Regex表达式。有人能帮忙吗?

您可以使用alphanum()

password: Joi.string().min(4).alphanum().required()

结账https://joi.dev/api/?v=17.2.1#stringalphanum

Joi
.string()
.regex(/[0-9a-zA-Z]*d[0-9a-zA-Z]*/) // at least one digit in any position
.regex(/[0-9a-zA-Z]*[a-zA-Z][0-9a-zA-Z]*/) // at least one letter in any position
.min(4)

提示:

  • w相当于javascript中的[0-9a-zA-Z_]。所以,如果你想包括下划线,选择这个
  • 如果要包含所有可打印的符号,请选择以下内容:[ -~](注意起始空格(

请改用confirmPassword: Joi.ref('password')

相关内容

  • 没有找到相关文章

最新更新