欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

IOS正则表达式之验证密码身份证手机号

程序员文章站 2023-12-20 15:25:40
ios正则表达式之验证密码身份证手机号 在项目中,我们在验证用户的输入,最简单的方法就是使用正则表达式了,ios系统也提供很方便的方法,让我们可以轻松的来验证用户名,密码...

ios正则表达式之验证密码身份证手机号

在项目中,我们在验证用户的输入,最简单的方法就是使用正则表达式了,ios系统也提供很方便的方法,让我们可以轻松的来验证用户名,密码,身份证好 ,手机号等;

下面附上我在项目中用到的正则表达式的验证方法,

由于比较常用,大家最好封装成+静态的方法,便于使用:

我把常用的方法,使用静态方法封装到一个 utils类里面,直接使用类名调用即可:

头文件:

// 
// utils.h 
// autosizing 
// 
// created by on 15/2/7. 
// copyright (c) 2015年 http://blog.csdn.net/yangbingbinga. all rights reserved. 
// 
 
#import <foundation/foundation.h> 
 
@interface utils : nsobject 
#pragma 正则匹配手机号 
+ (bool)checktelnumber:(nsstring *) telnumber; 
#pragma 正则匹配用户密码6-18位数字和字母组合 
+ (bool)checkpassword:(nsstring *) password; 
#pragma 正则匹配用户姓名,20位的中文或英文 
+ (bool)checkusername : (nsstring *) username; 
#pragma 正则匹配用户身份证号 
+ (bool)checkuseridcard: (nsstring *) idcard; 
#pragma 正则匹员工号,12位的数字 
+ (bool)checkemployeenumber : (nsstring *) number; 
#pragma 正则匹配url 
+ (bool)checkurl : (nsstring *) url; 
@end 

.m实现文件:

// 
// utils.m 
// autosizing 
// 
// created by on 15/2/7. 
// copyright (c) 2015年 http://blog.csdn.net/yangbingbinga. all rights reserved. 
// 
 
#import "utils.h" 
 
@implementation utils 
#pragma 正则匹配手机号 
+ (bool)checktelnumber:(nsstring *) telnumber 
{ 
  nsstring *pattern = @"^1+[3578]+\\d{9}"; 
  nspredicate *pred = [nspredicate predicatewithformat:@"self matches %@", pattern]; 
  bool ismatch = [pred evaluatewithobject:telnumber]; 
  return ismatch; 
} 
 
 
#pragma 正则匹配用户密码6-18位数字和字母组合 
+ (bool)checkpassword:(nsstring *) password 
{ 
  nsstring *pattern = @"^(?![0-9]+$)(?![a-za-z]+$)[a-za-z0-9]{6,18}"; 
  nspredicate *pred = [nspredicate predicatewithformat:@"self matches %@", pattern]; 
  bool ismatch = [pred evaluatewithobject:password]; 
  return ismatch; 
   
} 
 
#pragma 正则匹配用户姓名,20位的中文或英文 
+ (bool)checkusername : (nsstring *) username 
{ 
  nsstring *pattern = @"^[a-za-z\u4e00-\u9fa5]{1,20}"; 
  nspredicate *pred = [nspredicate predicatewithformat:@"self matches %@", pattern]; 
  bool ismatch = [pred evaluatewithobject:username]; 
  return ismatch; 
   
} 
 
 
#pragma 正则匹配用户身份证号15或18位 
+ (bool)checkuseridcard: (nsstring *) idcard 
{ 
  nsstring *pattern = @"(^[0-9]{15}$)|([0-9]{17}([0-9]|x)$)"; 
  nspredicate *pred = [nspredicate predicatewithformat:@"self matches %@", pattern]; 
  bool ismatch = [pred evaluatewithobject:idcard]; 
  return ismatch; 
} 
 
#pragma 正则匹员工号,12位的数字 
+ (bool)checkemployeenumber : (nsstring *) number 
{ 
  nsstring *pattern = @"^[0-9]{12}"; 
   
  nspredicate *pred = [nspredicate predicatewithformat:@"self matches %@", pattern]; 
  bool ismatch = [pred evaluatewithobject:number]; 
  return ismatch; 
   
} 
 
#pragma 正则匹配url 
+ (bool)checkurl : (nsstring *) url 
{ 
  nsstring *pattern = @"^[0-9a-za-z]{1,50}"; 
  nspredicate *pred = [nspredicate predicatewithformat:@"self matches %@", pattern]; 
  bool ismatch = [pred evaluatewithobject:url]; 
  return ismatch; 
   
} 
 
@end 

使用方法示例:

if ([utils checktelnumber:@"18801112020"]) //匹配结果,为yes 
{ 
  nslog(@"手机号格式正确"); 
} 
else                    //匹配结果为no 
{ 
  nslog(@"手机号格式错误"); 
} 

返回一个布尔值,根据布尔值,我们可以做相应的操作

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

上一篇:

下一篇: