邮箱网址手机号码等正则判断
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
|
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)
}
}
|
使用:
1
2
3
4
5
|
Validate.email(
"Dousnail@@153.com"
).isRight
//false
Validate.IP(
"11.11.11.11"
).isRight
//true
|