是的-密码验证
Posted
技术标签:
【中文标题】是的-密码验证【英文标题】:Yup-Password validation 【发布时间】:2021-05-09 11:41:54 【问题描述】:有人用过新的 yup-password 验证吗?我已经尝试过了,但失败了。我参考了文档,但无法理解。有人可以帮忙吗? Link to the yup-password documentation
【问题讨论】:
【参考方案1】:yup-password 是一个yup 插件,因此您首先需要安装yup
。
运行以下命令来安装yup
和yup-password
:
$ npm install yup yup-password
然后在您的项目中包含这两个包,如文档中所示,然后 输入您的架构。
// 1. import `yup`
const yup = require('yup')
// 2. setup `yup-password`
// this line extends yup's StringSchema with the
// methods shown in yup-password's documentation
require('yup-password')(yup)
// 3. build your validation schema
const schema = yup.object().shape(
username: yup.string().email().required(),
password: yup.string().password().required(),
)
// The user input
const input =
username: 'user@example.com',
// since the following password does not meet the
// default criteria, it will fail validation.
password: 'my password',
// 4. run the validation
// using async/await
void (async () =>
try
// the ` abortEarly: false ` is optional, but I'm adding there
// so that we can see all the failed password conditions.
const res = await schema.validate(input, abortEarly: false )
catch (e)
console.log(e.errors) // => [
// 'password must be at least 8 characters',
// 'password must contain at least 1 upper-cased letter',
// 'password must contain at least 1 number',
// 'password must contain at least 1 symbol',
// ]
)()
// using promises
schema
.validate(input, abortEarly: false )
.then(() => console.log('success!'))
.catch(e => console.log('validation failed: ' + e.errors.join(', ')))
如果您对默认密码标准不满意,您可以使用其余添加的方法来自定义您喜欢的行为。 例如:
const schema = yup
.string()
// at least 3 lowercase characters
.minLowercase(3)
// at least 2 uppercase characters
.minUppercase(2)
// and at least 6 numbers
.minNumber(6)
schema
.validate('my password')
.then(() => console.log('success'))
.catch(e => console.log('failed: ' + e.errors.join(', ')))
我希望这能把事情弄清楚一点。
【讨论】:
以上是关于是的-密码验证的主要内容,如果未能解决你的问题,请参考以下文章