看到一个不错的swift的 手机号、邮箱、网址等正则表达式验证,分享给大家。
支持swift3,经过修改后,亲测可用!
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. evaluate(with: currObject)
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
使用:直接创建一个swift文件,把以上代码copy进去。使用方式如下:
Validate.email ("blog@@csdn.com" ).isRight //false
Validate.URL ("https://www.baidu.com" ).isRight //true
Validate.IP ("114.114.114.114" ).isRight //true