Files
lockdown-iOS-mirror/LockdowniOS/String+Extensions.swift

41 lines
1014 B
Swift

//
// String+Extentions.swift
// Lockdown
//
// Created by Aliaksandr Dvoineu on 25.04.23.
// Copyright © 2023 Confirmed Inc. All rights reserved.
//
import Foundation
extension String {
enum ValidityType {
case listName
case domainName
case listDescription
}
enum Regex: String {
case listName = "^[a-zA-Z0-9\\s]{1,30}$"
case domainName = "^(?:\\*\\.)?[a-z0-9]+(?:[\\-_.][a-z0-9]+)*\\.[a-z]{2,6}$"
case listDescription = "^[a-zA-Z0-9\\s]{1,500}$"
}
func isValid(_ validityType: ValidityType) -> Bool {
let format = "SELF MATCHES %@"
var regex = ""
switch validityType {
case .listName:
regex = Regex.listName.rawValue
case .domainName:
regex = Regex.domainName.rawValue
case .listDescription:
regex = Regex.listDescription.rawValue
}
return NSPredicate(format: format, regex).evaluate(with: self)
}
}