首页 > 其他分享 >iOS - Swift 正则校验场景总结

iOS - Swift 正则校验场景总结

时间:2024-10-22 20:18:39浏览次数:3  
标签:regex string iOS 校验 range let Swift options

1. 校验 是否只含有 “数字和字母” 或者“字母”

class func checkUserName(_ username: String) -> Bool {

        let regex = try? NSRegularExpression(pattern: "^(?![0-9]+$)[0-9A-Za-z]{8,16}$", options: [])

        return regex?.firstMatch(in: username, options: [], range: NSRange(location: 0, length: username.utf16.count)) != nil

    }

2. 校验是否 只包含“数字”或者“字母”

class func isContainsNumOrCaracters(_ str:String) -> Bool {

        let regex = try? NSRegularExpression(pattern: "[0-9a-zA-Z]", options: [])

        return regex?.firstMatch(in: str, options: [], range: NSRange(location: 0, length: str.utf16.count)) != nil

    }

3.校验是否包含一个“大写字母”

class func isContainsOneUpLetter(_ string: String) -> Bool {

        let regex = ".*[A-Z]+.*"

        let test = NSPredicate(format: "SELF MATCHES %@", regex)

        return test.evaluate(with: string)

    }

4.校验是否包含一个“小写字母”

class func isContainsOneLowLetter(_ string: String) -> Bool {

        let regex = ".*[a-z]+.*"

        let test = NSPredicate(format: "SELF MATCHES %@", regex)

        return test.evaluate(with: string)

    }

5.校验是否包含一个“特殊字符”

class func isContainsOneSpecialCharacter(_ string: String) -> Bool {

        let regex = try? NSRegularExpression(pattern: ".*[!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?]", options: [])

        let range = NSRange(location: 0, length: string.utf16.count)

        let matches = regex?.matches(in: string, options: [], range: range)

        return matches?.count ?? 0 > 0

    }

6.校验是否连续5位相同字符

class func isContainsFiveSameStr(_ string: String) -> Bool {

        let regex = try? NSRegularExpression(pattern: "([0-9a-zA-Z])\\1{4,}", options: [])

        let range = NSRange(location: 0, length: string.utf16.count)

        let matches = regex?.matches(in: string, options: [], range: range)

        return matches?.count ?? 0 > 0

    }

7.校验是否同时包含数字,字母和特殊字符

class func isFormatPassword(_ str: String) -> Bool {

        let regex = try? NSRegularExpression(pattern: "(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9]).{8,16}", options: [])

        return regex?.firstMatch(in: str, options: [], range: NSRange(location: 0, length: str.utf16.count)) != nil

    }

8.校验是否大陆手机号

class func checkPhoneNum(_ string: String) -> Bool {

        let phoneNumberRegEx = "^1[3-9]\\d{9}$"

        let phoneTest = NSPredicate(format:"SELF MATCHES %@", phoneNumberRegEx)

        return phoneTest.evaluate(with: string)

    }

 

 

 

标签:regex,string,iOS,校验,range,let,Swift,options
From: https://blog.csdn.net/yangpei5211314/article/details/143021965

相关文章

  • 在iOS开发中如何使用Core Data管理数据持久化
    摘要:在iOS开发中运用CoreData管理数据持久化包括以下要点:1、掌握CoreData框架基础;2、实现数据模型的设计;3、熟悉数据存储与检索;4、利用上下文管理数据;5、数据迁移和版本控制。在这其中,数据模型的设计是核心,它影响整个应用的数据结构和未来的扩展性。数据模型设计指的是在Xcode中......
  • iOS开发 钥匙串中的证书无法导出(个人信息).p12文件
    解决方法1、直接把需要导出.p12的.cer文件复制粘贴到[钥匙串访问][登录]的分类下的文件中。然后就可以导出.p12文件了就是这么简单2、紧急提醒:如果上面的办法不行那么先执行下面的事情重新生成.cer文件再重新做1上面的事情。可能是Mac系统缺少AppleWWDRCA.cer证书。解决......
  • iOS 16.4系统以后不支持Safari调试问题
     iOS开发过程中,遇到调试WebView页面加载问题,需要在Safari浏览器做调试。电脑Safari浏览器:偏好设置→高级→勾选菜单栏显示“开发”菜单  偏好设置→安全性→勾选启用JavaScript手机上也要打开设置: 设置→Safari浏览器→高级→网页检查器打开  iOS16.4......
  • iOS Swift 的捕获列表 [weak self] 和 [unowned self]
    捕获列表(capturelist)是Swift中闭包的重要概念之一,用来控制闭包如何捕获和存储其上下文中的外部变量。捕获行为在闭包中使用外部变量时,Swift会自动捕获这些变量的引用。如果这些变量是引用类型(如类实例),闭包会持有它们的强引用,可能导致强引用循环,即内存泄漏。捕获列表允许你......
  • iOS开发基础-iPhone所有机型的硬件生产代号与对应机型
    以下是根据公开资料整理的iPhone所有机型的硬件生产代号与对应机型的列表。硬件生产代号对应机型iPhone1,1iPhone2GiPhone1,2iPhone3GiPhone2,1iPhone3GSiPhone3,1iPhone4(GSM)iPhone3,2iPhone4(GSMRev.A)iPhone3,3iPhone4(CDMA)iPh......
  • 2024常用 gui [转] Java Python C++ C# JavaScript Go Dart Swift
    下面就介绍一下热门编程语言对应的gui框架。JavaSwing:Java的基础GUI工具包,虽然年代较久,但仍然被广泛使用。JavaFX:现代的JavaGUI工具包,用于替代Swing,提供了更丰富的界面设计和动画效果支持。ApachePivot:一个开源的富互联网应用(RIA)框架,使用Java和XML来构建桌面和Web应用程序的......
  • 在Windows操作系统中,配置系统服务和检查服务的状态是确保系统正常运行的关键步骤。以
    在Windows操作系统中,配置系统服务和检查服务的状态是确保系统正常运行的关键步骤。以下是关于系统服务、PrintSpooler服务的工作状态、身份增强校验失败和Guest账户未激活的详细说明:1.系统服务概述Windows系统服务是后台运行的程序,用于执行系统管理任务或支持应用程序的运行。......
  • JAVA拦截器配合JWT、ThreadLocal的登录校验
    @TOC拦截器配合JWT、ThreadLocal的登录校验关于为什么要写这篇文章,今天在做项目的时候发现配置了拦截器,但是不生效,最后排查半天发现引入包有问题,遂决定写一篇详细的拦截器的使用。举例也都是根据案例写的,可能会有些许阅读困难,这里面的示例的TOKEN是在请求头里面的。使用......
  • 【ios】使用TestFlight将app分发给测试人员(超详细)
    我的环境:macos系统是Ventura13.0xcode是14.2(后面发现至少需要15版本的xcode才能上传app)证书生成  可以通过xcode生成Distribution类型的证书,如果你已经有的话那就忽略,这个证书也是备案时所需的。我是已经有证书了,后续的步骤使用的是之前已有备案证书。这个步骤只是放......
  • iOS系统下Window.open()方法失效问题
    在iOS系统下,window.open()方法失效的问题是一个常见的挑战,主要原因是iOS的安全机制和浏览器策略。以下是详细的原因分析和解决方案:原因分析安全机制拦截:iOS的Safari浏览器为了防止弹出广告和恶意窗口,对window.open()方法进行了限制。如果window.open()不是由用户直接交互触发的......