Swift 数据验证:Validator 库

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

什么是 Validator,为什么需要它?

Validator 是一个轻量级的 Swift 数据验证库,适用于 iOS 和 macOS 应用。它允许您以声明式方式描述用户输入的验证规则,避免冗长的 if-else 结构。其主要目标是简化表单处理、API 请求以及任何需要验证正确性(如电子邮件、密码、年龄、数字范围等)的数据处理。

安装

Validator 通过 Swift Package Manager (SPM) 安装。在 Package.swift 中添加依赖:

.package(url: "https://github.com/adamwaite/Validator.git", from: "3.2.0")

或者通过 Xcode:File → Add Packages → 粘贴仓库 URL。

主要功能

  • 字符串验证:电子邮件、URL、正则表达式、长度、非空。
  • 数字验证:范围、最小值/最大值、整数。
  • 复合规则:通过 And / Or 组合多个条件。
  • 自定义验证器:通过闭包创建自己的规则。
  • 与 UIKit/SwiftUI 集成:为 UITextField 和 SwiftUI View 提供现成的扩展。

Swift (iOS) 代码示例

import Validator

// 1. 定义电子邮件规则let emailRule = ValidationRulePattern(pattern: EmailValidationPattern.standard, error: "无效的电子邮件")

// 2. 验证字符串let email = "test@example.com"let result = email.validate(rule: emailRule)

switch result {case .valid: print("电子邮件有效")case .invalid(let errors): print("错误: \\(errors)")}

// 3. 复合规则:密码长度为 8 到 20 个字符,且至少包含一个数字let passwordRule = ValidationRuleLength(min: 8, max: 20, error: "密码长度在 8 到 20 之间") && ValidationRulePattern(pattern: ".*[0-9].*", error: "密码必须包含数字")

let password = "SecurePass1"let passwordResult = password.validate(rule: passwordRule)

// 4. 验证 UITextField (UIKit)let textField = UITextField()textField.text = "user@domain.com"textField.validate(rule: emailRule) { result in // 处理结果}

何时使用 Validator

  • 注册/登录表单(电子邮件、密码、电话)。
  • 验证 UITextField / SwiftUI TextField 的输入。
  • 在发送到服务器之前检查数据。
  • 过滤和验证用户生成的内容(评论、反馈)。
  • 解析和验证 JSON/API 响应。

该库非常适合需要灵活、可读且可扩展的数据验证系统,同时避免多余样板代码的项目。

推荐