swift邮箱网址手机号码等正则判断(转)

邮箱网址手机号码等正则判断

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("Dousnail@@153.com").isRight //false
 
Validate.URL("https://www.baidu.com").isRight //true
 
Validate.IP("11.11.11.11").isRight //true

[原帖地址]{http://www.cocoachina.com/swift/20160902/17467.html}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,232评论 4 61
  • 以后请喊我“堵神”,此“堵神”非彼“赌神”。在以前的单位,因为横跨两个市,经常是这边的路修好,那边的路又坏了,所...
    啊哦哈哈哈哈哈哈阅读 314评论 0 2
  • Android Weekly Issue #229 October 30th, 2016Android Weekl...
    圣骑士wind阅读 185评论 0 0
  • 珠江長流百舸游,蓝天碧透白云飘。 猎德大桥横江跃,最美当属小蛮腰。 五彩霓虹不夜天,高楼林立接云霄。 谁说广州无仙...
    徐一村阅读 244评论 0 2
  • 今天中午寝室一同学给我说,要是下午上课老师抽到她上去讲课的话我帮她上吧,因为我准备充分了,我当时就说了一句凭什么?...
    聂絮阅读 283评论 0 0