支付宝账户名(包括手机号或邮箱地址)显示必须脱敏显示。
- 手机号显示建议: 显示前3位 + ****** + 后2位, 如137******50
- 邮箱地址显示建议: @前面的字符显示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;
}
}