vapor swift自定义验证器

vapor swift自定义验证器,swift,validation,passwords,vapor,Swift,Validation,Passwords,Vapor,我正在尝试在Vapor中创建自定义密码验证程序。 我似乎不知道如何让比赛成功 最初由问题作者在问题本身中作为答案发布 文档可以在这里找到 导入蒸汽 类密码验证:ValidationSuite{ 静态函数验证(输入值:字符串)抛出{ //1个上部1个下部1个特殊1号,长度至少为8 设regex=Matches(“^(?=.[A-Z])(?=.[A-Z])(?=.[!@$&*))(?=.[0-9])。{8}$”) /* let evaluation=Matches.validate(regex) 尝

我正在尝试在Vapor中创建自定义密码验证程序。 我似乎不知道如何让比赛成功

最初由问题作者在问题本身中作为答案发布

文档可以在这里找到

导入蒸汽
类密码验证:ValidationSuite{
静态函数验证(输入值:字符串)抛出{
//1个上部1个下部1个特殊1号,长度至少为8
设regex=Matches(“^(?=.[A-Z])(?=.[A-Z])(?=.[!@$&*))(?=.[0-9])。{8}$”)
/*
let evaluation=Matches.validate(regex)
尝试评估。验证(输入:值)
*/
让evaluation=onlyaphanumeric.self
&&计数最小值(8)
&&匹配项。验证(匹配项)
尝试评估。验证(输入:值)
}
}
最初由问题作者在问题本身中作为答案发布

文档可以在这里找到

导入蒸汽
类密码验证:ValidationSuite{
静态函数验证(输入值:字符串)抛出{
//1个上部1个下部1个特殊1号,长度至少为8
设regex=Matches(“^(?=.[A-Z])(?=.[A-Z])(?=.[!@$&*))(?=.[0-9])。{8}$”)
/*
let evaluation=Matches.validate(regex)
尝试评估。验证(输入:值)
*/
让evaluation=onlyaphanumeric.self
&&计数最小值(8)
&&匹配项。验证(匹配项)
尝试评估。验证(输入:值)
}
}

loganwright在slack上帮助我找到了很好的解决方案,但请将您的解决方案作为答案发布(不在您的问题中)。谢谢。我在slack上得到了loganwright的帮助,找到了很好的解决方案,但请将您的解决方案作为答案发布(不在您的问题中)。谢谢
import Vapor

class PasswordValidation: ValidationSuite {

    static func validate(input value: String) throws {
        // 1 upper 1 lower 1 special 1 number at least 8 long
        let regex =  Matches("^(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$&*])(?=.*[0-9]).{8}$")

        /*
        let evaluation = Matches.validate(regex)
        try evaluation.validate(input: value)
        */

        let evaluation = OnlyAlphanumeric.self
                         && Count.min(8)
                         && Matches.validate(Matches<regex & value>)

        try evaluation.validate(input: value)
    }

}