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

来源:互联网 发布:重庆专业网络广告公司 编辑:程序博客网 时间:2024/04/29 23:33

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

import Foundationenum 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 //falseValidate.URL("https://www.baidu.com").isRight //trueValidate.IP("114.114.114.114").isRight //true
0 0