且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

iOS:判断用户名是否以字母开头、手机号输入、邮箱是否正确的正则表达式

更新时间:2022-08-25 10:29:43

新建一个字符串分类:NSString(Check),定义类方法更方便

.h文件

iOS:判断用户名是否以字母开头、手机号输入、邮箱是否正确的正则表达式
#import <Foundation/Foundation.h>

@interface NSString (Check)

//验证用户名输入时必须以字母开头
+ (BOOL)checkUserName:(NSString *)userName showWainingInView:(UIView *)view;

//验证用户名输入时必须为手机号
+ (BOOL)checkTelPhone:(NSString *)telPhone showWainingInView:(UIView *)view;

//验证邮箱是否输入正确
+ (BOOL)checkEmail:(NSString *)email showWaingInView:(UIView *)view;

//验证用户名是否为普通账号
+ (BOOL)isUserName:(NSString *)userName;

//验证用户名是否为手机号
+ (BOOL)isTelPhone:(NSString *)telPhone;

@end
iOS:判断用户名是否以字母开头、手机号输入、邮箱是否正确的正则表达式

 

.m文件

iOS:判断用户名是否以字母开头、手机号输入、邮箱是否正确的正则表达式
#import "NSString+Check.h"

@implementation NSString (Check)

//验证用户名输入时必须以字母开头
+ (BOOL)checkUserName:(NSString *)userName showWainingInView:(UIView *)view
{
    //判断是否以字母开头
    NSString *regex =  @"^[A-Za-z][A-Za-z0-9]*$";
    NSPredicate *pre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
    BOOL isMatch = [pre evaluateWithObject:userName];
    
    if (!isMatch) {
        
        [MBProgressHUD showError:@"用户名必须以字母开头" toView:view];
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            [MBProgressHUD hideHUDForView:view];
        });
        return NO;
    }
    return YES;
}

//验证用户名输入时必须为手机号
+ (BOOL)checkTelPhone:(NSString *)telPhone showWainingInView:(UIView *)view
{
    NSString *regex =  @"^[1][358][0-9]{9}$";
    NSPredicate *pre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
    BOOL isMatch = [pre evaluateWithObject:telPhone];
    
    if (!isMatch) {
        
        [MBProgressHUD showError:@"手机号格式不正确" toView:view];
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            [MBProgressHUD hideHUDForView:view];
        });
        return NO;
    }
    return YES;
}

//验证邮箱是否输入正确
+ (BOOL)checkEmail:(NSString *)email showWaingInView:(UIView *)view{
    
    NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
    NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
    BOOL isMatch = [emailTest evaluateWithObject:email];
    
    if (!isMatch) {
        
        [MBProgressHUD showError:@"邮箱格式不正确" toView:view];
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.8 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            [MBProgressHUD hideHUDForView:view];
        });
        return NO;
    }
    return YES;
}

//验证用户名是否为普通账号
+ (BOOL)isUserName:(NSString *)userName{
    NSString *regex =  @"^[A-Za-z][A-Za-z0-9]*$";
    NSPredicate *pre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
    BOOL isMatch = [pre evaluateWithObject:userName];
    if (!isMatch) {
      
        return NO;
    }
    return YES;
}

//验证用户名是否为手机号
+ (BOOL)isTelPhone:(NSString *)telPhone{
    
    NSString *regex =  @"^[1][358][0-9]{9}$";
    NSPredicate *pre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
    BOOL isMatch = [pre evaluateWithObject:telPhone];
    if (!isMatch) {
        return NO;
    }
    return YES;
}
@end
iOS:判断用户名是否以字母开头、手机号输入、邮箱是否正确的正则表达式

 

 

其他参考:http://my.oschina.net/zhuzhu1223/blog/422157

iOS开发中邮箱,电话号码,身份证,密码,昵称,车牌号正则表达式验证

iOS:判断用户名是否以字母开头、手机号输入、邮箱是否正确的正则表达式
//邮箱
+ (BOOL) validateEmail:(NSString *)email
{
    NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
    NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
    return [emailTest evaluateWithObject:email];
}
 
 
//手机号码验证
+ (BOOL) validateMobile:(NSString *)mobile
{
    //手机号以13, 15,18开头,八个 \d 数字字符
    NSString *phoneRegex = @"^((13[0-9])|(15[^4,\\D])|(18[0,0-9]))\\d{8}$";
    NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",phoneRegex];
    return [phoneTest evaluateWithObject:mobile];
}
 
 
//车牌号验证
+ (BOOL) validateCarNo:(NSString *)carNo
{
    NSString *carRegex = @"^[\u4e00-\u9fa5]{1}[a-zA-Z]{1}[a-zA-Z_0-9]{4}[a-zA-Z_0-9_\u4e00-\u9fa5]$";
    NSPredicate *carTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",carRegex];
    NSLog(@"carTest is %@",carTest);
    return [carTest evaluateWithObject:carNo];
}
 

 
//车型
+ (BOOL) validateCarType:(NSString *)CarType
{
    NSString *CarTypeRegex = @"^[\u4E00-\u9FFF]+$";
    NSPredicate *carTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",CarTypeRegex];
    return [carTest evaluateWithObject:CarType];
}
 
 

//用户名
+ (BOOL) validateUserName:(NSString *)name
{
    NSString *userNameRegex = @"^[A-Za-z0-9]{6,20}+$";
    NSPredicate *userNamePredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",userNameRegex];
    BOOL B = [userNamePredicate evaluateWithObject:name];
    return B;
}
 
 
//密码
+ (BOOL) validatePassword:(NSString *)passWord
{
    NSString *passWordRegex = @"^[a-zA-Z0-9]{6,20}+$";
    NSPredicate *passWordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",passWordRegex];
    return [passWordPredicate evaluateWithObject:passWord];
}
 

 
//昵称
+ (BOOL) validateNickname:(NSString *)nickname
{
    NSString *nicknameRegex = @"^[\u4e00-\u9fa5]{4,8}$";
    NSPredicate *passWordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",nicknameRegex];
    return [passWordPredicate evaluateWithObject:nickname];
}
 
 

//身份证号
+ (BOOL) validateIdentityCard: (NSString *)identityCard
{
    BOOL flag;
    if (identityCard.length <= 0) {
        flag = NO;
        return flag;
    }
    NSString *regex2 = @"^(\\d{14}|\\d{17})(\\d|[xX])$";
    NSPredicate *identityCardPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2];
    return [identityCardPredicate evaluateWithObject:identityCard];
}
iOS:判断用户名是否以字母开头、手机号输入、邮箱是否正确的正则表达式

 

程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式!
本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/5440979.html,如需转载请自行联系原作者