让我们首先说我有一个非常大的项目,该项目的一部分是获取用户恢复操作状态和用户电子邮件,并通过服务层将其发送回前端应用。问题是,电子邮件需要在后端进行更改,因此不会发送纯文本。我的意思是,当在后端填充值时,我需要有一些代码来修改它,所以它将具有这样的格式:j*****e@domain.com。这绝对需要用我正在研究的方法(实际上并不是很大)来完成。这是我的方法,它将从同一个类中的另一个方法获取状态,以及抓取用户的电子邮件:
public CredentialRecoveryResponse RecoveryResponse(CredentialRecoveryRequest request)
{
CredentialRecoveryResponse response = new CredentialRecoveryResponse();
response.Status = RecoverCredentials(request);
if (response.Status == UserRecoveryActionStatus.Success)
{
User usr = UserRepository.GetByID(request.UserID);
response.Email = usr.EmailAddress;
}
return response;
}
不知何故,在这个方法中,我需要把那个usr.EmailAddress和修改它做"阻止"或将值更改为" *"对于除" @ domain.com"之前的第一个和最后一个字符以外的所有字符一部分。是否有一种快速简便的方法可以在整个电子邮件地址无法通过电汇发送的方式中执行此操作?
答案 0 :(得分:0)
以下是:
private static string ObfuscateEmail(string email)
{
return Regex.Replace(email, "^(?<name>[^@]+)", m => {
string match = m.Groups["name"].Value;
return match[0] + new String('*', match.Length - 1);
});
}
这是做什么的?