Swift 正则表达式 验证手机号、邮箱、URL等
2016-04-20 14:29
477 查看
enum ValidatedType {
case Email
case PhoneNumber
}
func ValidateText(validatedType type:
ValidatedType, validateString:
String) -> Bool {
do {
let pattern:
String
if type
== ValidatedType.Email {
pattern = "^([a-z0-9_\\.-]+)@([\\da-z\\.-]+)\\.([a-z\\.]{2,6})$"
}
else {
pattern = "^1[0-9]{10}$"
}
let regex:
NSRegularExpression =
try NSRegularExpression(pattern: pattern, options:
NSRegularExpressionOptions.CaseInsensitive)
let matches = regex.matchesInString(validateString, options:
NSMatchingOptions.ReportProgress, range:
NSMakeRange(0, validateString.characters.count))
return matches.count >
0
}
catch {
return
false
}
}
func EmailIsValidated(vStr:
String) -> Bool {
return
ValidateText(validatedType:
ValidatedType.Email, validateString: vStr)
}
func PhoneNumberIsValidated(vStr:
String) -> Bool {
return
ValidateText(validatedType:
ValidatedType.PhoneNumber, validateString: vStr)
}
其他类似的正则表达式也可以写进来
case Email
case PhoneNumber
}
func ValidateText(validatedType type:
ValidatedType, validateString:
String) -> Bool {
do {
let pattern:
String
if type
== ValidatedType.Email {
pattern = "^([a-z0-9_\\.-]+)@([\\da-z\\.-]+)\\.([a-z\\.]{2,6})$"
}
else {
pattern = "^1[0-9]{10}$"
}
let regex:
NSRegularExpression =
try NSRegularExpression(pattern: pattern, options:
NSRegularExpressionOptions.CaseInsensitive)
let matches = regex.matchesInString(validateString, options:
NSMatchingOptions.ReportProgress, range:
NSMakeRange(0, validateString.characters.count))
return matches.count >
0
}
catch {
return
false
}
}
func EmailIsValidated(vStr:
String) -> Bool {
return
ValidateText(validatedType:
ValidatedType.Email, validateString: vStr)
}
func PhoneNumberIsValidated(vStr:
String) -> Bool {
return
ValidateText(validatedType:
ValidatedType.PhoneNumber, validateString: vStr)
}
其他类似的正则表达式也可以写进来
相关文章推荐
- Swift URL Schemes使用
- Swift报错type ''does not conform to protocol 'UITableViewDataSource'
- 在项目里交叉使用Swift和OC
- swift 小技巧进阶
- ubuntu之swift环境搭建
- Swift调试输出
- 为什么 2010 年前后诞生的语言(如 Golang, Rust, Swift)都是直接编译成机器码?
- 长远看 Apple 的平台上开发, Swift 真的可以完全取代 OC 吗?
- Swift 为什么没有异常处理?
- Swift,任重而道远!
- 【Swift学习】Swift编程之旅---控制流(九)
- Realm Swift
- Swift文档注释
- Swift命名空间
- Swift方法嵌套
- block,代理和通知的简单介绍--swift闭包
- Swift下标
- Swift中文教程(七) 闭包
- Swift中文教程(六)函数
- Swift中文教程(五)控制流