首页 > 解决方案 > 如何在 Objective-C 中屏蔽电子邮件地址

问题描述

如何在 Objective-C 中屏蔽电子邮件地址字符串?

我想屏蔽电子邮件如下

mugunth@gmail.com 变成 m*****h@gmail.com

标签: objective-c

解决方案


@通过从范围位置减少 2 来查找范围并创建一个新范围。创建一个新字符串,其中的*字符按新的范围长度重复。现在替换范围中的字符。

NSArray *emails = @[@"mugunth@gmail.com",@"mugunthgmail.com",@"m@gmail.com"];
NSString *emailRegex = @"[A-Z0-9a-z._%+-]{2,}+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
for (NSString *email in emails) {
    if ([emailTest evaluateWithObject:email]) {
        NSRange range = [email rangeOfString:@"@"];
        NSRange newRange = NSMakeRange(1, range.location-2);
        NSString *replace = [@"" stringByPaddingToLength:newRange.length withString:@"*" startingAtIndex:0];
        NSString * maskedEmail = [email stringByReplacingCharactersInRange:newRange withString:replace];
        NSLog(@"%@",maskedEmail);//m*****h@gmail.com
    } else {
        NSLog(@"Invalid Email Address");
    }
}

m*****h@gmail.com

无效的邮件地址

无效的邮件地址


推荐阅读