1

我正在尝试在 Vapor 中创建一个自定义密码验证器。我似乎无法弄清楚如何使 Matches 工作。

4

1 回答 1

0

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

文档可以在这里找到https://vapor.github.io/documentation/guide/validation.html

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)
    }

}
于 2016-12-14T16:22:47.823 回答