
- 更新邮箱登录相关功能,新增邮箱验证码获取和登录API端点。 - 添加AccountModel以管理用户认证信息,支持会话票据的存储和更新。 - 实现密码恢复功能,支持通过邮箱获取验证码和重置密码。 - 增加本地化支持,更新相关字符串以适应新功能。 - 引入ValidationHelper以验证邮箱和密码格式,确保用户输入的有效性。 - 更新视图以支持邮箱登录和密码恢复的用户交互。
41 lines
1.7 KiB
Swift
41 lines
1.7 KiB
Swift
import Foundation
|
||
|
||
struct ValidationHelper {
|
||
|
||
/// 验证邮箱地址格式是否正确
|
||
/// - Parameter email: 邮箱地址
|
||
/// - Returns: 是否为有效的邮箱格式
|
||
static func isValidEmail(_ email: String) -> Bool {
|
||
let emailRegex = "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$"
|
||
let emailPredicate = NSPredicate(format: "SELF MATCHES %@", emailRegex)
|
||
return emailPredicate.evaluate(with: email)
|
||
}
|
||
|
||
/// 验证手机号码格式是否正确(中国大陆)
|
||
/// - Parameter phoneNumber: 手机号码
|
||
/// - Returns: 是否为有效的手机号格式
|
||
static func isValidPhoneNumber(_ phoneNumber: String) -> Bool {
|
||
let phoneRegex = "^1[3-9]\\d{9}$"
|
||
let phonePredicate = NSPredicate(format: "SELF MATCHES %@", phoneRegex)
|
||
return phonePredicate.evaluate(with: phoneNumber)
|
||
}
|
||
|
||
/// 验证密码强度
|
||
/// - Parameter password: 密码
|
||
/// - Returns: 是否满足密码强度要求(6-16位,包含字母和数字)
|
||
static func isValidPassword(_ password: String) -> Bool {
|
||
guard password.count >= 6 && password.count <= 16 else { return false }
|
||
let hasLetter = password.rangeOfCharacter(from: .letters) != nil
|
||
let hasNumber = password.rangeOfCharacter(from: .decimalDigits) != nil
|
||
return hasLetter && hasNumber
|
||
}
|
||
|
||
/// 验证验证码格式
|
||
/// - Parameter code: 验证码
|
||
/// - Returns: 是否为有效的验证码格式(4-6位数字)
|
||
static func isValidVerificationCode(_ code: String) -> Bool {
|
||
let codeRegex = "^\\d{4,6}$"
|
||
let codePredicate = NSPredicate(format: "SELF MATCHES %@", codeRegex)
|
||
return codePredicate.evaluate(with: code)
|
||
}
|
||
} |