iOS开发:Swift里正则表达式的正确用法(限制TextField的文本输入,登录时判断正确的手机号)

如果你不知道什么是正则表达式,你可以跟我着我的代码学,或者直接看[这篇文章](https://deerchao.net/tutorials/regex/regex.htm),这是我见过讲的最详细的一篇文章。

首先从最基本的用法开始说起:

        let string = "ab123cdefg456hijk"

        let expression = "\\d"//创建表达式,\d是专门匹配数字的,等效于[0-9],注意:我们用的时候记得再前面多加个"\"。

        let regex = try! NSRegularExpression(pattern: expression, options: .allowCommentsAndWhitespace)//生成NSRegularExpression实例

        let numberOfMatches = regex.numberOfMatches(in: string, options:.reportProgress, range: NSMakeRange(0, (string as NSString).length))//匹配到数字的个数

        print(numberOfMatches)// 6

接下来结合实际需求来介绍,有时候我们需要限制输入框只能输入特定的字符串,比如只能输入小数点后两位,这里我们需要调用 UITextField 协议里的一个方法: func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool ,这个方法会在我们输入文字的时候调用,如果返回 false 则输入框不会显示任何文字,我们就可以在这个方法里对我们输入的文字做正则匹配,如果不满足就返回 false,代码:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值