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

来源:互联网 发布:软件租用合同范本 编辑:程序博客网 时间:2024/05/07 10:02

我们在做项目的时候,难免会遇到给手机号发送验证码的情况,这时,我们需要首先判断一下用户输入的手机号是否为正确的手机号,下面是用正则表达式判断是否为正确的手机号 ,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位,也就是说前面一个 小括号中包含的四个小括号 就是为了判断手机号码的前三个数字。因为手机号码的前三个数字最难判断。 

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

0 0
原创粉丝点击