ios 校验

网上搜的ios校验的方法

pragma mark - 手机号 校验
+ (BOOL)isValidateTelPhone:(NSString *)telphoneString;
pragma mark - 电话号码,传真
+(BOOL)isValidatePhoneAndFax:(NSString *)phoneNumber;
pragma mark - email 校验
+ (BOOL)isValidateEmail:(NSString *)emailString;
pragma mark - 密码大小写英文字母和数字
+ (BOOL)isValidatePassword:(NSString *)string;
pragma mark - 输入金额,只能是数字和小数点
+ (BOOL)isValidateAmount:(NSString *)string;
pragma mark - 输入金额,只能是数字和小数点 全是正数
+(BOOL)isValidateAmountPositiveNum:(NSString *)string;
pragma mark - 必须包含有数字和字母
+ (BOOL) isValidateWithStr: (NSString *)string;
pragma mark - 只包含数字或字母:可以全是数字,也可以全是字母,还可以混合搭配。
+ (BOOL)isValidateNumLetter: (NSString *)string;
pragma mark - 全是数字或全是字母
+ (BOOL)isOnlyNumOrLetter:(NSString *)string;
pragma mark - 银行卡 校验 //2银行卡,  16、18、19 位数字
+ (BOOL)isValidateBankCard:(NSString *)string;
pragma mark - 身份证识别码 百度百科
+(BOOL)checkIdentityCardNo:(NSString*)cardNo;
pragma mark - 身份证 校验
+ (BOOL) isValidateIdentityCard: (NSString *)identityCard;
pragma mark - 军官证 校验
+ (BOOL)isValidateOfficer:(NSString *)emailString;
pragma mark - 护照 校验
+ (BOOL)isValidatePassport:(NSString *)string;
pragma mark - 小于19位的数字 虚拟卡卡号校验
+ (BOOL)isValidateVCCard:(NSString *)string;
pragma mark -/*车牌号验证 MODIFIED BY HELENSONG*/
+(BOOL) validateCarNo:(NSString* )carNo;
pragma mark -/*用户名正则*/
+ (BOOL)validateUserName:(NSString *)userName;
pragma mark -/*密码正则*/
+ (BOOL)validatePassword:(NSString *)password;
#pragma mark - 手机号 校验
+ (BOOL)isValidateTelPhone:(NSString *)telphoneString {
    NSString *telRegex = @"(((13[0-9]{1})|(14[579]{1})|(15[0-9]{1})|(17[0-9]{1})|(18[0-9]{1}))+[0-9]{8})";

    NSPredicate *regExPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", telRegex];
    return [regExPredicate evaluateWithObject:telphoneString];
}

#pragma mark - 电话号码,传真
+(BOOL)isValidatePhoneAndFax:(NSString *)phoneNumber{
    NSString *phoneNumberRegex = @"^[+]{0,1}(\\d){1,3}[ ]?([-]?((\\d)|[ ]){1,12})+$";
    NSPredicate *regExPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", phoneNumberRegex];
    return [regExPredicate evaluateWithObject:phoneNumber] ;
}
#pragma mark - email 校验
+ (BOOL)isValidateEmail:(NSString *)emailString {
    NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
    NSPredicate *regExPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
    return [regExPredicate evaluateWithObject:emailString] ;
}

#pragma mark - 密码大小写英文字母和数字
+ (BOOL)isValidatePassword:(NSString *)string
{
    BOOL isExistDigit = ([string rangeOfCharacterFromSet:[NSCharacterSet decimalDigitCharacterSet]].location != NSNotFound) ? YES : NO;

    BOOL isExistLetter = ([string rangeOfCharacterFromSet:[NSCharacterSet letterCharacterSet]].location != NSNotFound) ? YES : NO;

    return isExistDigit && isExistLetter;
}

#pragma mark - 输入金额,只能是数字或小数点

+(BOOL)isValidateAmount:(NSString *)string{
    NSString *regex = @"^(-)?(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){1,2})?$";
    NSPredicate *regExPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
    return [regExPredicate evaluateWithObject:string] ;


}

+(BOOL)isValidateAmountPositiveNum:(NSString *)string{
    NSString *regex = @"^(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){1,2})?$";
    NSPredicate *regExPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
    return [regExPredicate evaluateWithObject:string];
}


#pragma mark - 必须包含有数字和字母
+ (BOOL) isValidateWithStr: (NSString *)string
{
    BOOL flag;
    if (string.length <= 0) {
        flag = NO;
        return flag;
    }
    NSString *regex = @"^(?![^0-9]+$)(?![^a-zA-Z]+$).+$";
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];
    return [predicate evaluateWithObject:string];
}

#pragma mark - 只包含数字或字母:可以全是数字,也可以全是字母,还可以混合搭配。
+ (BOOL)isValidateNumLetter: (NSString *)string
{
    BOOL flag;
    if (string.length <= 0) {
        flag = NO;
        return flag;
    }
    NSString *regex = @"^[A-Za-z0-9]+$";
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];
    return [predicate evaluateWithObject:string];
}

#pragma mark - 全是数字或全是字母
+ (BOOL)isOnlyNumOrLetter:(NSString *)string
{
    NSString *regex = @"^\\d+|[a-zA-Z]+$";
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];
    return [predicate evaluateWithObject:string];
}

#pragma mark - 银行卡 校验 //2银行卡,  16、18、19 位数字
+ (BOOL)isValidateBankCard:(NSString *)string
{
    NSString *regex = @"^\\d{16}|\\d{18}|\\d{19}$";
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];
    return [predicate evaluateWithObject:string];
}

#pragma mark - 小于19位的数字
+ (BOOL)isValidateVCCard:(NSString *)string
{
    NSString *regex = @"^\\d{1,19}$";
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];
    return [predicate evaluateWithObject:string];
}

#pragma mark - 身份证识别码 百度百科
+(BOOL)checkIdentityCardNo:(NSString*)cardNo
{
    if (cardNo.length != 18) {
        return  NO;
    }
    NSArray* codeArray = [NSArray arrayWithObjects:@"7",@"9",@"10",@"5",@"8",@"4",@"2",@"1",@"6",@"3",@"7",@"9",@"10",@"5",@"8",@"4",@"2", nil];
    NSDictionary* checkCodeDic = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"1",@"0",@"X",@"9",@"8",@"7",@"6",@"5",@"4",@"3",@"2", nil]  forKeys:[NSArray arrayWithObjects:@"0",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10", nil]];

    NSScanner* scan = [NSScanner scannerWithString:[cardNo substringToIndex:17]];

    int val;
    BOOL isNum = [scan scanInt:&val] && [scan isAtEnd];
    if (!isNum) {
        return NO;
    }
    int sumValue = 0;

    for (int i =0; i<17; i++) {
        sumValue+=[[cardNo substringWithRange:NSMakeRange(i , 1) ] intValue]* [[codeArray objectAtIndex:i] intValue];
    }

    NSString* strlast = [checkCodeDic objectForKey:[NSString stringWithFormat:@"%d",sumValue%11]];

    if ([strlast isEqualToString: [[cardNo substringWithRange:NSMakeRange(17, 1)]uppercaseString]]) {
        return YES;
    }
    return  NO;
}

#pragma mark - 身份证 校验
+ (BOOL) isValidateIdentityCard: (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];
}

#pragma mark - 军官证 校验
+ (BOOL)isValidateOfficer:(NSString *)emailString
{
    NSString *emailRegex = @"^\\d{8}$";
    NSPredicate *regExPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
    return [regExPredicate evaluateWithObject:emailString] ;
}

#pragma mark - 护照 校验
+ (BOOL)isValidatePassport:(NSString *)string
{
    NSString *regex = @"^(P\\d{7}|G\\d{8}|S\\d{7,8}|D\\d+|1[4,5]\\d{7})$";
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];
    return [predicate evaluateWithObject:string];
}

#pragma mark -/*车牌号验证 MODIFIED BY HELENSONG*/
+(BOOL) validateCarNo:(NSString* )carNo
{
    NSString *carRegex = @"^[A-Za-z]{1}[A-Za-z_0-9]{5}$";
    NSPredicate *carTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",carRegex];
    NSLog(@"carTest is %@",carTest);
    return [carTest evaluateWithObject:carNo];
}
#pragma mark -/*用户名正则*/
+ (BOOL)validateUserName:(NSString *)name
{
    NSString * nameReges = @"^[a-zA-Z\u4E00-\u9FA5][a-zA-Z0-9_\u4E00-\u9FA5]{5,19}$";
    NSPredicate *check = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",nameReges];
    NSLog(@"check is %@",check);
    return [check evaluateWithObject:name];
}
#pragma mark -/*密码正则*/
+ (BOOL)validatePassword:(NSString *)password
{
    NSString * psdReges = @"^[A-Za-z0-9,.;':\"!+-/=?>)(<&%^#]{6,20}$";
    NSPredicate *check = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",psdReges];
    NSLog(@"check is %@",check);
    return [check evaluateWithObject:password];
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值