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;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章