ios手机号和邮箱(支付宝账号)脱敏

支付宝账户名(包括手机号或邮箱地址)显示必须脱敏显示。

  1. 手机号显示建议: 显示前3位 + ****** + 后2位, 如137******50
  2. 邮箱地址显示建议: @前面的字符显示3位, 3位后显示3个*, @后面完整显示如:com***@163.com , 如果@前字符少于三位, 则全部显示并在@前加***, 例如[email protected]则显示为tt***@163.com
+ (NSString*) getSecrectStringWithAlipayAccount:(NSString*)account
{
    NSMutableString *newStr;
    if ([TTDataCheck  isMobileNumber_str:account] && account.length == 11) {//验证为手机号
        newStr = [NSMutableString stringWithString:account];
        NSRange range = NSMakeRange(3, 6);
        [newStr replaceCharactersInRange:range withString:@"******"];
    }else{
        //处理邮箱字符串
        // [email protected]  -->>  邮箱123****[email protected]
        NSArray * emailArray = [account componentsSeparatedByString:@"@"];
        NSString * emailHead = emailArray.firstObject;
        NSString * emailLast = emailArray.lastObject;
        //拼接
        NSInteger emailHeadLength = emailHead.length;
        if(emailHeadLength>3) {//大于3位的邮箱  可以拼接前三位后两位方式
            newStr = [NSMutableString stringWithString:[emailHead substringToIndex:3]];
            for (int i = 0; i < 3; i++) [newStr appendString:@"*"];//中间*号
        }else{//不足3位邮箱  前一位
            newStr = [NSMutableString stringWithString:emailHead];
            for (int i = 0; i < 3; i++) [newStr appendString:@"*"];//中间*号
        }
        //加后缀
        [newStr appendString:emailLast];
    }
    
    return newStr;
}

验证是否是手机号,由于手机号码段越来越多,只对第一位做验证,

+ (BOOL)isMobileNumber_str:(NSString *)mobileNum
{
    NSString * MOBILE = @"^1+[0123456789]+\\d{9}";
    NSPredicate *regextestct = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", MOBILE];
    if (([regextestct evaluateWithObject:mobileNum] == YES))
    {
        return YES;
    }
    else
    {
        return NO;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章