`

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):
            //意思 第一位 1 , 第二位 [2-9] 2到9都可以, d{9} 数字9位
            predicateStr = "^((1[2-9]))\\d{9}$"
            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)
    }
}

 

使用

 

Validate.email("Dousnail@@153.com").isRight //false
 
Validate.URL("https://www.baidu.com").isRight //true
 
Validate.IP("11.11.11.11").isRight //true

 

 

分享到:
评论

相关推荐

    常用的正则表达式判断手机号邮箱等

    这里我们将深入探讨如何使用正则表达式来判断手机号和邮箱的合法性。 首先,手机号码的格式在中国大陆通常是11位数字,通常以13、14、15、16、17、18、19开头。一个简单的手机号正则表达式可以写为: ```regex ^1...

    ios-运用正则表达式判断移动、联通、电信手机号码格式.zip

    在iOS开发中,正则表达式(Regular Expression)是一种强大...通过学习和理解这段代码,开发者可以学习到如何在iOS应用中使用正则表达式进行数据验证,并进一步扩展到其他类型的数据格式验证,如邮箱地址、身份证号等。

    ios 下的验证工具类

    这个函数使用正则表达式判断输入的字符串是否符合邮箱格式。 3. **电话号码验证**: 电话号码的验证因国家和地区而异,但通常我们至少会检查输入是否只包含数字。对于中国大陆的电话号码,可以使用以下函数进行...

    正则表达式在IOS中的应用及IOS中三种正则表达式的使用与比较

    1. 验证用户输入:例如,验证手机号码、邮箱地址、日期格式等。 2. 数据清洗:从字符串中提取特定格式的信息,如去除空格、筛选URL、截取子串等。 3. 分割字符串:使用`components(separatedBy:)`方法结合正则表达式...

    iphone初学者开发小技巧

    这样可以获取到电话的状态变化,如来电、去电、挂断等。 以上这些小技巧是iPhone应用开发中的常见实践,可以帮助开发者更高效地实现功能,优化用户体验。在学习和实践中,不断积累这样的小技巧,能让你的编程之路...

    ios-RegularCheck.zip

    在IT行业中,正则表达式(Regular Expression)是一种强大的文本处理工具,用于匹配、查找、替换和验证字符串模式。在iOS开发中,正则表达式经常被用来进行数据验证,如手机号、用户名、密码和邮箱的格式检查,以及...

    iOS 安全接口字符串的判断

    除了上述基本判断,还可以使用正则表达式进行更复杂的检查,例如检查邮箱格式、电话号码格式等。`NSPredicate`类提供了正则表达式的支持,可以方便地实现这些功能。 5. **性能考虑** 在处理大量数据或实时更新的...

    ios-用户反馈.zip

    本项目中的“ios-用户反馈.zip”文件似乎包含了一个自定义的textView实现,允许用户输入限定字数的文字,并且能对输入的内容进行格式验证,判断是否为手机号或邮箱格式。下面我们将详细探讨这些知识点。 1. **...

    iPhone常用代码集合

    func validateEmail(_ candidate: String) -> Bool { let emailRegex = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}" let emailTest = NSPredicate(format: "SELF MATCHES %@", emailRegex) return ...

    文本框的输入限制

    此外,`pattern`属性则允许我们设置正则表达式,用于验证输入内容是否符合特定格式,如邮箱、电话号码等。 在客户端JavaScript中,我们可以利用事件监听,如`oninput`或`onkeyup`,实时检测并处理用户输入。通过...

    验证服务

    对于更复杂的验证需求,如验证邮箱地址、电话号码等,可以自定义验证函数或者使用第三方库。比如,我们可以创建一个函数来检查字符串是否包含有效的邮箱格式,或者使用正则表达式进行匹配。 提到"emoji",在iOS应用...

    输入框发生抖动特效

    这可能涉及到正则表达式匹配、特定格式检查(如电话号码、邮箱)等。 3. **触发抖动动画**:如果输入不符合规则,触发抖动动画。动画效果可以通过修改输入框的位置来实现,通常是让输入框在两个相对位置之间反复...

Global site tag (gtag.js) - Google Analytics