是的-密码验证

Posted

技术标签:

【中文标题】是的-密码验证【英文标题】:Yup-Password validation 【发布时间】:2021-05-09 11:41:54 【问题描述】:

有人用过新的 yup-password 验证吗?我已经尝试过了,但失败了。我参考了文档,但无法理解。有人可以帮忙吗? Link to the yup-password documentation

【问题讨论】:

【参考方案1】:

yup-password 是一个yup 插件,因此您首先需要安装yup

运行以下命令来安装yupyup-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(', ')))

我希望这能把事情弄清楚一点。

【讨论】:

以上是关于是的-密码验证的主要内容,如果未能解决你的问题,请参考以下文章

是的,密码确认验证不起作用

密码验证Objective-C的正则表达式[重复]

bootstrapvalidator 验证两次密码是不是输入一致

如何停止 xampp 用户所需的身份验证

Firebase休息验证 - 云功能

在 xcode 8 中登录的 UI 测试