Skip to content

Latest commit

 

History

History
39 lines (29 loc) · 1.03 KB

File metadata and controls

39 lines (29 loc) · 1.03 KB

validation

Input validation with field-level errors.

Usage

// Direct validation (returns error)
err := validation.ValidateEmail(email)
err := validation.ValidatePassword(password)
err := validation.ValidateUsername(username)

errs := validation.ValidateAll(
    validation.Field("email", email).Required().Email(),
    validation.Field("password", password).Required().Password(),
    validation.Field("password_confirm", confirmation).Required().Equal(password),
)

// Field validators (return ValidationError for forms)
ve := validation.ValidateEmailField("email", value)
ve := validation.ValidatePhoneField("phone", value)
ve := validation.NoHTML("bio", value)

if !ve.IsEmpty() {
    errors[ve.Field] = ve.Message
}

// Normalization
email := validation.NormalizeEmail(input)  // lowercase, trimmed

Password rules: 8-128 chars, requires uppercase, lowercase, digit, special char.