objective-c - 如何在 Objective-C 中屏蔽电子邮件地址
问题描述
如何在 Objective-C 中屏蔽电子邮件地址字符串?
我想屏蔽电子邮件如下
mugunth@gmail.com 变成 m*****h@gmail.com
解决方案
@
通过从范围位置减少 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
无效的邮件地址
无效的邮件地址
推荐阅读
- java - IllegalArgumentException:目前仅支持私钥数据
- android - android:有人可以知道不需要身份验证的api端点并滥用它们吗
- c++ - 了解这是如何工作的
- c++ - do while 循环中的 if 语句以 yes 或 no 结尾
- c# - EF6 不保存对相关属性的更改
- android - RecyclerView Android 中的 AdView
- android - 如何在webview中获取点击区域的svg地图ID
- c# - 如何在 VS 即时窗口中循环时调用 COM 方法
- javascript - Google Doubleclick - 初始加载后的自定义视频源
- c - 在(rand() >> 7) & 0xFF中,rand() >> 7的意义是什么?