swift 常用的正则表达式,校验方式

Swift 正则表达式 验证手机号、邮箱、URL等 enum ValidatedType {     case Email     case PhoneNumber } func ValidateText(validatedType type: ValidatedType, validateString: String) -> Bool {     do {         let pattern: Str 阅读详情

//MARK: - 验证是否是纯数字

    func isNumber() -> Bool {

        let pattern = "^[0-9]+$"

        if NSPredicate(format: "SELF MATCHES %@", pattern).evaluate(with: self) {

            return true

        }

        return false

    }

    

    // 验证是不是字母

    func isLetter() -> Bool {

        let pattern = "^^[A-Za-z0-9]+$"

        if NSPredicate(format: "SELF MATCHES %@", pattern).evaluate(with: self) {

            return true

        }

        return false

    }

    

    //MARK: - 验证是否是6位纯数字

    func isNumberSix() -> Bool {

        let pattern = "^\\d{6}$"

        if NSPredicate(format: "SELF MATCHES %@", pattern).evaluate(with: self) {

            return true

        }

//        let a = "aaaa"

//        a.trimOptional()

        return false

    }

    //MARK: - 验证是否是是有效提现金额

    func verifyNumberTwo() -> Bool {

        let pattern = "^\\d+(\\.\\d{1,2})?$"

        if NSPredicate(format: "SELF MATCHES %@", pattern).evaluate(with: self) {

            return true

        }

        return false

    }



//检测银行卡

    func verifyBankCard() -> Bool {

        let pattern = "^([0-9]{16}|[0-9]{19}|[0-9]{17}|[0-9]{18}|[0-9]{20}|[0-9]{21})$"

        let regex = try! NSRegularExpression(pattern: pattern, options: NSRegularExpression.Options.dotMatchesLineSeparators)

        if let _ = regex.firstMatch(in: self, options: NSRegularExpression.MatchingOptions(rawValue: 0), range: NSMakeRange(0, self.characters.count)) {

            return true

        }

        return false

    }

    //检测姓名

    func verifyUserName() -> Bool {

        let pattern = "(^[\u{4e00}-\u{9fa5}]{2,12}$)|(^[A-Za-z0-9_-]{4,12}$)"

        let regex = try! NSRegularExpression(pattern: pattern, options: NSRegularExpression.Options.dotMatchesLineSeparators)

        if let _ = regex.firstMatch(in: self, options: NSRegularExpression.MatchingOptions(rawValue: 0), range: NSMakeRange(0, self.characters.count)) {

            return true

        }

        return false

    }

    //MARK: - 验证身份证

    func verifyId() -> Bool {

        let pattern = "(^[0-9]{15}$)|([0-9]{17}([0-9]|X)$)"

        let regex = try! NSRegularExpression(pattern: pattern, options: NSRegularExpression.Options.dotMatchesLineSeparators)

        if let _ = regex.firstMatch(in: self, options: NSRegularExpression.MatchingOptions(rawValue: 0), range: NSMakeRange(0, self.characters.count)) {

            return true

        }

        return false

    }

    //MARK:处理手机号

    func phoneNoAddAsterisk() -> String {

        return (self as NSString).replacingCharacters(in: NSMakeRange(3,4), with: "****")

    }

    

    //MARK:处理手机号

    func phoneNoHide() -> String {

        return (self as NSString).replacingCharacters(in: NSMakeRange(2,7), with: "*******")

    }

    //MARK:处理银行卡号(隐藏几位)

    func bankCardAddAsterisk() -> String {

        if self.characters.count  == 0 {

            return self

        }

        return (self as NSString).replacingCharacters(in: NSMakeRange(4,10), with: "***********")

    }

    //MARK:获取字符串个数(去空格)

    func trim() -> String {

        return self.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)

    }

    // 检测密码

    func isPassword() -> Bool {

        let pattern = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,18}$"//"^[@A-Za-z0-9!#\\$%\\^&*\\.~_]{6,20}$"

        let regex = try! NSRegularExpression(pattern: pattern, options: NSRegularExpression.Options.dotMatchesLineSeparators)

        if let _ = regex.firstMatch(in: self, options: NSRegularExpression.MatchingOptions(rawValue: 0), range: NSMakeRange(0, self.characters.count)) {

            return true

        }

        return false

    }



这些都是项目中常用到的,如有问题,请加我QQ:765950216 。大家一起学习进步。


Swift如何判断字符串的语言 有时我们需要判断一段文字是属于那种语言:英文?韩文?还是中文?虽说这也算某种程度的猜测,但至少比你自己瞎猜要准确地多! ;)这里提供三种方法.首先如果你只在MacOS上运行的话,你可以用AppKit中的NSSpellChecker类:import AppKitlet checker = NSSpellChecker.shared() checker.automaticallyIdentifiesLa 阅读详情

相关推荐

Swift Code查询工具使用教程

Swift Code,也被称为SWIFT代码(Society for Worldwide Interbank Financial Telecommunication),是一种国际银行间用于银行间资金转账的标准化代码系统。这种代码用于识别参与方及其银行机构,确保金融交易能够准确、安全地被处理。Swift Code的存在大大促进了全球贸易的效率和金融系统的透明度。用户界面是用户与软件交互的第一道门槛,因此Swift Code查询工具在设计上采用了简洁直观的界面布局,使得用户能够迅速上手。

weixin_34620658的博客 1424

swift 判断输入的字符串是否为数字

// 判断输入的字符串是否为数字,不含其它字符 func isPurnInt(string: String) -> Bool { let scan: Scanner = Scanner(string: string) var val:Int = 0 return scan.scanInt(&val) &...

dlit83600的博客 700

UOS忘记密码别慌!用LiveCD工具5分钟搞定,附命令行救援模式详细步骤

本文详细介绍了UOS系统密码遗忘时的两种解决方案:图形化LiveCD工具和命令行救援模式。针对普通用户,LiveCD工具提供5分钟快速重置密码的便捷操作;而技术人员可通过命令行深度解析系统分区挂载与密码修改流程。文章还包含安全加固建议,帮助用户预防类似问题发生。

weixin_27032989的博客 589

iOS开发 根据正则表达式谓词(NSPredicate)判断邮箱,手机号码,身份证...

最近在做一个项目,其中有一些需要自己判断是否输入正确以否,比如手机号,邮箱,还有其他等等 一.NSPredicate的基本语法 1.比较运算符:=、==、>=、=>、、 =、==:判断两个表达式是否相等,在谓词中=和==是相同的意思都是判断,而没有赋值这一说 NSNumber *testNumber = @123; NSPredicate *predicate = [NSPredi

wgl_happy的专栏 3032

激光三角测量法:斜射与直射式技术的原理与应用解析

本文深入解析激光三角测量法中斜射式与直射式技术的原理、应用及对比。斜射式适用于高精度小范围测量,尤其擅长处理反光表面;直射式则适合大范围位移检测,结构更简单。文章详细介绍了两种技术的光路分析、数学建模、应用场景及选型建议,并探讨了系统校准与误差分析方法,为工业检测领域提供实用参考。

weixin_29280219的博客 414

STM32 CubeMX LwIP + freertOS 移植

生成代码,烧录即可ping通。这里要注意的是,要修改freertOS的任务栈大小,默认128,修改为1024,不修改就跑不起来。生产代码,下载进开发板。开发板网口与电脑网口通过网线直连,设置电脑本地网卡在同一网段。在以上无系统的cubeMX配置下继续添加freertOS。无系统LWIP协议栈设置,静态IP地址,关闭DHCP。先用裸机测试LAN8742A的网卡驱动。MCU型号:STM32F746NGH。下面进行freertOS系统移植。网卡型号:LAN8742A。系统时钟和时基定时器如下。

u011625775的博客 1374

Swift 判断是否是数字

有人利用Int判断,会发现如果有小数点就判断为不是数字了,这里我们改为通过float判断,如果包含小数点也可以正确判断代码如下: func isPurnFloat(string: String) -> Bool { let scan: Scanner = Scanner(string: string) var val:F

SoulKey的博客 1万+

CTFmisc-------Jack

每一个文件里面都有不一样的base64编码,我尝试将其解密,发现解出来的是乱码,所以我想到真正的flag藏在这些字符串中,所以我们要写代码把字符串提取出来。提取出来后,得到很多的base64的编码,要一个一个的解码很麻烦,猜到里面有flag字样的base64编码,所以我们将flag进行base64编码,1.下载得到Jack文件夹,里面有很多的txt文件。发现这个字符串是众多编码中唯一一个没有==然后从那些base编码中寻找Zmxh字段。

woshicainiao666的博客 1万+

Swift 常用正则

swift 常用正则校验,包括 1、身份证校验 2、三字码校验 3、手机号校验 4、票号校验 5、邮箱校验 6、url校验 7、全英文校验 8、全数字校验 9、全中文校验

Cheung1992的博客 834

SAP 对接CBS(http方式)

CLEAR:lv_xml_crc32_string. CONCATENATEcrc32_passwordcrc32_keyi_stringINTOlv_xml_crc32_string. CONDENSElv_xml_crc32_string. CALLFUNCTION'SCMS_STRING_TO_XSTRING' EXPORTING text=lv_xml_crc32_string encoding='8400' "GB...

3597

基于形状的模板匹配之候选点选择

基于形状的匹配匹配,顶层金字塔提取候选点

manuoo的专栏 2767

iOS - Swift 正则校验场景总结

1. 校验 是否只含有 “数字和字母” 或者“字母”2. 校验是否 只包含“数字”或者“字母”7.校验是否同时包含数字,字母和特殊字符。3.校验是否包含一个“大写字母”4.校验是否包含一个“小写字母”5.校验是否包含一个“特殊字符”6.校验是否连续5位相同字符。8.校验是否大陆手机号。

日常分享 2135

在虚拟机中对阿克曼转向车进行导航及避障的仿真测试

一、    在我使用rosdep install teb_local_planner去安装teb_local_planner的时候,报错:Command ‘rosdep’ not found, but can be installed with:sudo apt install python3-rosdep2    我花大半个月好不容易建立起的一系列ROS环境,被python3-rosdep2这条万恶的语句连同ROS一起给我删了。。。悲伤来的那么猝不及防    随着ROS版本的迭代,相关资料很多都不再适用

慕羽★的博客 3806

Swift语言的正则表达式

正则表达式(Regular Expression)是一种用于描述字符串集合的模式,它通过一种特殊的语法来定义字符串的特征或格式。正则表达式可以用于搜索、匹配和替换字符串中的内容,广泛应用于数据验证、文本处理和信息提取等领域。

2401_90086266的博客 418

青岛鼎信Java开发面试题及参考答案(3万字长文,多张原理图)

MySQL 的事务特性有哪些? MySQL 事务具有四个重要特性,被称为 ACID 特性。 原子性(Atomicity):事务是一个不可分割的工作单位,事务中的操作要么全部执行,要么全部不执行。例如,在银行转账场景中,从账户 A 转账到账户 B,包括扣减账户 A 的金额和增加账户 B 的金额这两个操作必须作为一个整体来完成。如果在执行过程中发生错误,比如系统崩溃或者数据库出现故障,那么已经执行的部分必须全部回滚,就好像整个转账操作从未发生过一样。 一致性(Consistency):事务必须

大模型大数据攻城狮的专栏 1088

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

swift 手机号、邮箱、网址等正则表达式验证

看到一个不错的swift的 手机号、邮箱、网址等正则表达式验证,分享给大家。 import Foundation enum Validate { case email(_: String) case phoneNum(_: String) case carNum(_: String) case username(_: String) case passw

Welcome to Yubao Liu's Blogs Page 4112

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Swift身份证正则表达式

Swift 中身份证号码的正则表达式如下: ^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$ 这个正则表达式可以用来验证 18 位身份证号码的合法性,其中号码中的 X 表示数字 10。 如果你想验证 15 位身份证号码的合法性,可以使用下面的正则表达式:...

weixin_35749545的博客 331

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

swift 实现身份证最后一位校验,符合(ISO 7064:1983.MOD 11-2)标准,包括正则校验

/*没废话,直接上代码*/ //iso加权数组     static let iso7064Arr = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5 ,8, 4, 2]     //iso校验数组,其中大小写x均视为10     static let iso7064ModArr = [1, 0, 10, 9

weibo3721的专栏 2337

roadmap-retos-programacion 第 16 题实战:用正则表达式提取数字并校验 Email、电话与 URL

本文以 roadmap-retos-programacion 仓库第 16 个编程挑战([Roadmap/16 - EXPRESIONES REGULARES/ejercicio.md](https://link.gitcode.com/i/b1eb508114d5a70a73b8a85a12a2dc81))为核心,系统讲解正则表达式(Regular Expressions)的核心语法,并给出跨

gitblog_00757的博客 907

swift语言使用正则表达式验证字符串是否为邮箱,手机号,身份证号

最近用到邮箱验证功能,在网上找了下没有找到合适的swift语言写的邮箱验证,于是就写了个swift语言版的邮箱验证,简单易用。

qq_24689191的博客 3397

swift 手机号格式校验

最近联通和电信,新增了 199、166等号段。造成项目中,用户无法使用新推出手机号注册,产品、运营、客服一起过来,巴拉巴拉的。作为iOS开发,审核发版一次需要一些时间。而且最近风声紧,理财类APP已经半年都不让更新了。针对上面的问题,我们决定对手机号做如下调整:对的,这是swift语言的代码。 之前的手机号校验代码(太low

SugarCode的博客 3626

Swift5.0 用正则表达式检测文本中的网页链接

获取方法如下: import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() } override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { let content

记录从移动端、鸿蒙到物联网与AI的完整实战与思考。专注于分享可复用的工程方案与产品思维,尤其深入鸿蒙生态与全栈开发。以十年工程与管理沉淀,为你提供清晰的技术纵深路径。坚信技术的价值在于“贯通”与“落地”。 947

推荐开源项目:Regex - Swift下的优雅正则表达式处理工具

推荐开源项目:Regex - Swift下的优雅正则表达式处理工具 在编写Swift代码时,正则表达式的处理往往因为其字符串的转义和类型安全性而变得繁琐。但今天,我们要向您介绍一款名为 Regex 的开源项目,它由知名开发者Sindre Sorhus打造,彻底改变了这一现状。Regex为Foundation框架中的NSRegularExpression提供了一层便利且强类型的封装,让正则表达式在S...

gitblog_00562的博客 422

swift登陆页面

import UIKit class SecondVC: UIViewController,UITextFieldDelegate { var tf1:UITextField? override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. self.view....

weixin_43761710的博客 1549

swift——严谨的正则表达式(NSPredicate-谓词版)

最近有在网上看到很细致的关于手机号的正则表达式,而且验证的代码和之前文章里的不一样 swift——简单的正则表达式 方法如下: enum verifyType{ case Other case PhoneNumber case IdentityCard } extension String{ //正则验证 func ver...

weixin_33704234的博客 761

iOS开发常用输入校验

1、数字字符校验 #defineNUMBERSPERIOD@"0123456789." -(BOOL)CheckInput:(NSString*)string{ NSCharacterSet*cs; cs=[[NSCharacterSetcharacterSetWithCharactersInString:NUMBERSPERIOD]...

weixin_30387663的博客 75
上一篇: swift 手机号格式校验
SugarCode
博客等级 码龄11年 1粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值