iOS 正则表达式判断纯数字及匹配11位手机号码的方法

转载  更新时间:2017年01月18日 10:25:03   作者:于海明   我要评论

这篇文章主要介绍了iOS 正则表达式判断纯数字及匹配11位手机号码的方法,判断手机号码是否正确的方法很多,我是用正则表达式来完成匹配的,具体方法,大家参考下本文

第一种使用正则表达式 判断

//是否是纯数字 
+ (BOOL)isNumText:(NSString *)str{ 
 NSString * regex  = @"(/^[0-9]*$/)"; 
 NSPredicate * pred  = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex]; 
 BOOL isMatch   = [pred evaluateWithObject:str]; 
 if (isMatch) { 
  return YES; 
 }else{ 
  return NO; 
 } 
}

具体正则对不对  还需要大家来看以下  

第二种 系统源生的 

我推荐第二种  

- (NSString *) trimming { 
 return [self stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]]; 
} 
//判断是不是纯数字 
 [NSCharacterSet decimalDigitCharacterSet]; 
 if ([[textField.text stringByTrimmingCharactersInSet: [NSCharacterSet decimalDigitCharacterSet]]trimming].length >0) { 
  DLog(@"不是纯数字"); 
 }else{ 
  DLog(@"纯数字!"); 
 } 

最近在做一个即时通讯的项目, 首先是注册登录界面, 项目需求是通过用户输入的手机号码获取一个4位数的验证码来完成注册,那么, 问题来了?

如何判断用户输入的手机号码是合法的正确的11位手机号码呢?(这些简单的问题就在前端判断好了再post给后台 ,没必要把各种没用的数据都post给后台)

判断手机号码是否正确的方法很多,我是用正则表达式来完成匹配的,废话不多说,直接上代码:

//正则表达式匹配11位手机号码 
 NSString *regex = @"^((13[0-9])|(15[^4,\\D])|(18[0,0-9]))\\d{8}$"; 
 NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex]; 
 BOOL isMatch = [pred evaluateWithObject:_telField.text]; 
if(isMatch) { //有效手机号 
}else//无效手机号 
 { 
   if (ios7) { 
    UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:nil message:@"无效的手机号码,请重新输入..." delegate:self cancelButtonTitle:nil otherButtonTitles:@"确定", nil nil]; 
    alertView.tag = 104; 
    [alertView show]; 
   }else 
   { 
    UIAlertController*alertController = [UIAlertController alertControllerWithTitle:nil message:@"无效的手机号码,请重新输入..." preferredStyle:UIAlertControllerStyleAlert]; 
    UIAlertAction *otherAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction*action) { 
     [_telField selectAll:self]; 
    }]; 
    [alertController addAction:otherAction]; 
    [self presentViewController:alertController animated:YES completion:nil]; 
   } 
  } 
 } 

联通,移动和电信每年都会添加新的号码,所以匹配电话号码的正则表达式也要年年更新.

^((13[0-9])|(15[^4,\\D])|(18[0,0-9]))\\d{8}$这个正则表达式我测试过了还没发现有匹配不了的号码,在这里分享给大家用!

相关文章

  • JS正则表达式替换url参数的方法

    JS正则表达式替换url参数的方法

    这篇文章主要介绍了JS正则表达式替换url的参数的方法及js使用正则表达式从url中获取参数值的代码,需要的朋友可以参考下
    2018-02-02
  • 收集的ASP.NET中常用正则表达式

    收集的ASP.NET中常用正则表达式

    收集的ASP.NET中常用正则表达式...
    2007-03-03
  • 正则获取图片地址 链接地址

    正则获取图片地址 链接地址

    可以获取网页中所有的图片地址和链接地址的代码,好像一般用在获取网页中的资源地址时用的到
    2008-12-12
  • JavaScript正则表达式(总结篇)

    JavaScript正则表达式(总结篇)

    本文是小编参考其他有关js正则表达式资料整理的,主要目的有两个:一:自我复习归纳总结。二:共享方便大家搜索 。js正则表达式感兴趣的朋友可以一起学习
    2016-03-03
  • IOS开发常用的正则表达式

    IOS开发常用的正则表达式

    正则表达式是一种用来进行文本匹配的工具,其语法非常精简,这篇文章是小编日常整理了些有关ios开发常用的正则表达式,非常具有借鉴价值,感兴趣的朋友快来一起学习学习吧
    2015-10-10
  • 浅析lastIndex对正则表达式结果的影响

    浅析lastIndex对正则表达式结果的影响

    js中正则表达式的使用方式有两种,一种是正则表达式对象的方法,一种是字符串对象的方法。下面通过本文给大家分享lastIndex对正则表达式结果的影响,需要的朋友参考下吧
    2017-11-11
  • asp email邮箱地址验证正则表达式

    asp email邮箱地址验证正则表达式

    刚才说了邮箱验证先可用js来处理,然后再由asp,php来做,下面我来看看一个asp 邮箱地址验证正则表达式全新实例吧。
    2010-05-05
  • 可以少写1000行代码的正则表达式

    可以少写1000行代码的正则表达式

    正则表达式,一个十分古老而又强大的文本处理工具,仅仅用一段非常简短的表达式语句,便能够快速实现一个非常复杂的业务逻辑。知道这20个正则表达式,能让你少写1000行代码,想知道吗
    2016-04-04
  • js mac地址 正则表达式

    js mac地址 正则表达式

    用正则实现的可以匹配mac地址的函数。
    2009-03-03
  • js 匹配多个的Email地址的代码

    js 匹配多个的Email地址的代码

    js 匹配多个点的Email地址的代码 例如:xxx@xxx.xxx.xxx.xx
    2010-04-04

最新评论