我正在尝试验证用户输入的密码。密码的最小长度应为4,并且应包含字符和数字。我正在使用Joi 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表达式,有人能帮忙吗?
3条答案
按热度按时间xzabzqsa1#
您可以使用
alphanum()
password: Joi.string().min(4).alphanum().required()
请访问https://joi.dev/api/?v=17.2.1#stringalphanum
68bkxrlz2#
温馨提示:
\w
相当于javascript中的[0-9a-zA-Z_]
。所以如果你想包含下划线,选择这个。[ -~]
. (注意开头的空格)7uhlpewt3#
请改用
confirmPassword: Joi.ref('password')
。