邮箱网址手机号码等正则判断
import Foundation
enum Validate {
case email(_:
String)
case phoneNum(_:
String)
case carNum(_:
String)
case username(_:
String)
case password(_:
String)
case nickname(_:
String)
case URL(_:
String)
case IP(_:
String)
var isRight: Bool {
var predicateStr:
String!
var currObject:
String!
switch
self {
case let .email(str):
predicateStr
= "^([a-z0-9_\\.-]+)@([\\da-z\\.-]+)\\.([a-z\\.]{2,6})$"
currObject
= str
case let .phoneNum(str):
predicateStr
= "^((13[0-9])|(15[^4,\\D]) |(17[0,0-9])|(18[0,0-9]))\\d{8}$"
currObject
= str
case let .carNum(str):
predicateStr
= "^[A-Za-z]{1}[A-Za-z_0-9]{5}$"
currObject
= str
case let .username(str):
predicateStr
= "^[A-Za-z0-9]{6,20}+$"
currObject
= str
case let .password(str):
predicateStr
= "^[a-zA-Z0-9]{6,20}+$"
currObject
= str
case let .nickname(str):
predicateStr
= "^[\\u4e00-\\u9fa5]{4,8}$"
currObject
= str
case let .URL(str):
predicateStr
= "^(https?:\\/\\/)?([\\da-z\\.-]+)\\.([a-z\\.]{2,6})([\\/\\w \\.-]*)*\\/?$"
currObject
= str
case let .IP(str):
predicateStr
= "^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"
currObject
= str
}
let predicate
= NSPredicate(format:
"SELF MATCHES %@" ,predicateStr)
return predicate
.evaluateWithObject(currObject)
}
}
使用:
Validate
.email(
"blog@@csdn.com")
.isRight //false
Validate
.URL(
"https://www.baidu.com")
.isRight //true
Validate
.IP(
"114.114.114.114")
.isRight //true
转载请注明原文地址: https://ju.6miu.com/read-1202562.html