正则表达式解决邮箱,电话号码等规范

来源:互联网 发布:都匀浪人网络 编辑:程序博客网 时间:2024/05/16 09:07


#import "NSString+NSStringCategory.h"


@implementation NSString (NSStringCategory)


//email address validate

+(BOOL)isValidateEmail:(NSString*)email

{

    NSString *emailRegex=@"[A-Z0-9a-z.%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";

    

   NSPredicate *emailTest=[NSPredicatepredicateWithFormat:@"SELF MATCHES %@", emailRegex];

   return [emailTest evaluateWithObject:email];

}



//phone number validate

+(BOOL)isValidateMobile:(NSString*)mobile

{

    //phone number is beginning with 13, 15, 18, and it is contain 8 number

    

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

    

   NSPredicate *phoneTest=[NSPredicatepredicateWithFormat:@"SELF MATCHES %@", phoneRegex];

    

   return [phoneTest evaluateWithObject:mobile];

}




//car's number validate

+(BOOL)isValidateCarNo:(NSString*)carNo

{

    NSString *carRegex=@"^[A-Za-z-_0-9]{1}[A-Za-z—_0-9]{5}$";

    

   NSPredicate *carTest=[NSPredicatepredicateWithFormat:@"SELF MATCHES %@", carRegex];

    

   return [carTest evaluateWithObject:carNo];

    

}




//string is validate string(length is 6-20, contain number, upper or lower char and _


+(BOOL)isValidateUserName:(NSString *)string

{

   if ([string length]<6||[stringlength]>20)

    {

       return NO;

    }

    

   char c;    

   for (int i=0; i<[stringlength]; i++) {

        c=[stringcharacterAtIndex: i];

       if ((c>=0&&c<=9)||(c>='a'&&c<='z')||(c>='A'&&c<='Z')||(c=='_'))

        {

           continue;

        }

       else

           return NO;

    }

    return YES;

}



//////////////.h

#import <Foundation/Foundation.h>


@interface NSString (NSStringCategory)


+(BOOL)isValidateEmail:(NSString*)email;


+(BOOL)isValidateMobile:(NSString*)mobile;



+(BOOL)isValidateCarNo:(NSString*)carNo;


+(BOOL)isValidateUserName:(NSString*)string;


@end



////////main

#import <Foundation/Foundation.h>

#import "NSString+NSStringCategory.h"

int main(int argc,const char * argv[])

{


    @autoreleasepool {

        

        //test email address

        NSString *emailStr=@"wangtong105@sina.com";

        NSLog(@"the dress is %d email address",[NSStringisValidateEmail:emailStr]);

        

        

        //test phone number

       NSString *number=@"15522520536";

        NSLog(@"the number is %d number", [NSStringisValidateMobile:number]);

        

        //test car number

       NSString *carNum=@"1c2323";

        NSLog(@"the car number is %d number", [NSStringisValidateCarNo:carNum]);

        

        //test name

       NSString *name=@"wangtong";

        NSLog(@"the name is %d name", [NSStringisValidateUserName:name]);

        

    }

   return 0;

}




0 0