iOS 之常用正则表达式(二)
来源:互联网 发布:淘宝客佣金怎么算 编辑:程序博客网 时间:2024/06/05 03:57
//身份证正则
+(BOOL) IsIdentityCard:(NSString *)IDCardNumber
{
for (int i=0; i<IDCardNumber.length; i++) {
NSString *c=[NSStringstringWithFormat:@"%c",[IDCardNumbercharacterAtIndex:i]];
if(![cisEqualToString:@"0"]&&![cisEqualToString:@"1"]&&![cisEqualToString:@"2"]&&![cisEqualToString:@"3"]&&![cisEqualToString:@"4"]&&![cisEqualToString:@"5"]&&![cisEqualToString:@"6"]&&![cisEqualToString:@"7"]&&![cisEqualToString:@"8"]&&![cisEqualToString:@"9"]){
returnNO;
}
}
if (IDCardNumber.length <= 0) {
returnNO;
}
NSString *regex2 =@"^(\\d{14}|\\d{17})(\\d|[xX])$";
NSPredicate *identityCardPredicate = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@",regex2];
return [identityCardPredicateevaluateWithObject:IDCardNumber];
}
//手机号正则
+ (BOOL) IsPhoneNumber:(NSString *)number
{
NSString *phoneRegex1=@"1[34578]([0-9]){9}";
NSPredicate *phoneTest1 = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@",phoneRegex1];
return [phoneTest1evaluateWithObject:number];
}
//银行卡正则
+ (BOOL) IsBankCard:(NSString *)cardNumber
{
for (int i=0; i<IDCardNumber.length; i++) {
NSString *c=[NSStringstringWithFormat:@"%c",[IDCardNumbercharacterAtIndex:i]];
if(![cisEqualToString:@"0"]&&![cisEqualToString:@"1"]&&![cisEqualToString:@"2"]&&![cisEqualToString:@"3"]&&![cisEqualToString:@"4"]&&![cisEqualToString:@"5"]&&![cisEqualToString:@"6"]&&![cisEqualToString:@"7"]&&![cisEqualToString:@"8"]&&![cisEqualToString:@"9"]){
returnNO;
}
}
if(cardNumber.length==0)
{
returnNO;
}
NSString *digitsOnly =@"";
char c;
for (int i = 0; i < cardNumber.length; i++)
{
c = [cardNumber characterAtIndex:i];
if (isdigit(c))
{
digitsOnly =[digitsOnly stringByAppendingFormat:@"%c",c];
}
}
int sum = 0;
int digit = 0;
int addend = 0;
BOOL timesTwo =false;
for (NSInteger i = digitsOnly.length - 1; i >= 0; i--)
{
digit = [digitsOnly characterAtIndex:i] - '0';
if (timesTwo)
{
addend = digit * 2;
if (addend > 9) {
addend -= 9;
}
}
else {
addend = digit;
}
sum += addend;
timesTwo = !timesTwo;
}
int modulus = sum % 10;
return modulus == 0;
}
#pragma mark --判断手机号合法性
+ (BOOL)checkPhone:(NSString *)phoneNumber
{
NSString *regex =@"^((13[0-9])|(147)|(15[^4,\\D])|(18[0-9])|(17[0-9]))\\d{8}$";
NSPredicate *pred = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", regex];
BOOL isMatch = [predevaluateWithObject:phoneNumber];
if (!isMatch)
{
returnNO;
}
returnYES;
}
#pragma mark 判断邮箱
+ (BOOL)checkEmail:(NSString *)email{
//^(\\w)+(\\.\\w+)*@(\\w)+((\\.\\w{2,3}){1,3})$
NSString *regex =@"^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$";
NSPredicate *emailTest = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", regex];
return [emailTestevaluateWithObject:email];
}
======手机运营商===
-(NSString *)JudgePhoneNumber:(NSString *)phoneNum
{
// NSString * MOBILE = @"^1(3[0-9]|5[0-35-9]|8[025-9])\\d{8}$";
NSString * CM =@"^1(34[0-8]|(3[5-9]|5[017-9]|8[278])\\d)\\d{7}$";
NSString * CU =@"^1(3[0-2]|5[256]|8[56])\\d{8}$";
NSString * CT =@"^1((33|53|8[09])[0-9]|349)\\d{7}$";
// NSString * PHS = @"^0(10|2[0-5789]|\\d{3})\\d{7,8}$";
// NSPredicate *regextestmobile = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", MOBILE];
NSPredicate *regextestcm = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", CM];
NSPredicate *regextestcu = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", CU];
NSPredicate *regextestct = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", CT];
if ([regextestcmevaluateWithObject:phoneNum] ==YES){
//移动
return@"中国移动";
}elseif ([regextestctevaluateWithObject:phoneNum] ==YES){
//电信
return@"中国电信";
}elseif ([regextestcuevaluateWithObject:phoneNum] ==YES){
//联通
return@"中国联通";
}else{
//可能还有未收录全的三大运营商号码,无法识别,后期会添加
}
return@"输入号码有误";
}
- iOS 之常用正则表达式(二)
- IOS之正则表达式(二)
- iOS之正则表达式(二)
- 正则表达式(二)--常用正则表达式
- (二)正则表达式之常用表达式详细解析
- 常用正则表达式(二)
- 常用正则表达式(二)
- iOS正则表达式(二)
- IOS开发之常用的正则表达式
- IOS开发之常用的正则表达式
- IOS开发之常用的正则表达式
- IOS开发之常用的正则表达式
- IOS开发之常用的正则表达式
- ios开发之 常用正则表达式
- iOS开发之常用的正则表达式
- iOS开发之常用的正则表达式
- 常用正则表达式(二)
- IOS-常用正则表达式
- HandlerThread简介
- 快速入门系列--MVC--06视图
- DataBean
- POJ1466_Girls and Boys_二分图匹配求解最大独立集
- j2ee的web工程,web.xml有什么?
- iOS 之常用正则表达式(二)
- 快速入门系列--MVC--05行为
- List<Getmsgres.DataBean.ListBean> list如何处理
- 分享系列--面试JAVA架构师--链家网
- subpages 创建后如何关闭或隐藏?
- css Hack是什么
- 机器学习:如何在安卓上集成TensorFlow
- 用Django分页器实现分页跳转
- 用java做一个简单的二维码