iOS 正则表达式验证是否为正确的手机号

我们在做项目的时候,难免会遇到给手机号发送验证码的情况,这时,我们需要首先判断一下用户输入的手机号是否为正确的手机号,下面是用正则表达式判断是否为正确的手机号 ,BOOL 类型的 isMatch  就是 我们 想要的结果。代码如下:


   NSString *regex =@"^((1[3-8][0-9])|(147)|(15[^4,\\D])|(18[0,5-9]))\\d{8}$";

   NSPredicate *pred = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", regex];

   BOOL isMatch = [predevaluateWithObject:phoneNumberStr];

 

   好吧让我们来分析一下这个正则表达式的意思,^ 表示开始, () 表示域段,我们可以把它当做平常的小括号来看,| 表示 或 ,第一个小括号里面说 1 开头 第二个字符 是 3-8 之间的数字, 第三个字符是0-9之间的数字,

然后或  第二个小括号中的是 147,然后 或 15开头加上除去4以外的数字,再或18开头第三个是0 或者5-9之间的一个数字。最后跟上8位0-9之间的数字。总共是 11位,也就是说前面一个 小括号中包含的四个小括号 就是为了判断手机号码的前三个数字。因为手机号码的前三个数字最难判断。 

   我们可以吧这三行代码加入到我们的工程中判断手机号的地方,就能够使用了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值