gpt4 book ai didi

c# - 如何在 C# 中屏蔽/隐藏电子邮件地址

转载 作者:可可西里 更新时间:2023-11-01 08:30:30 24 4
gpt4 key购买 nike

我有一个问题,我必须在 C# 中应用屏蔽/隐藏电子邮件地址的一部分。例子

jhon@abc.com==> jh**n@abc.com
bigjhon@abc.com==> bi****n@abc.com
brotherhood@abc.com==>br*******od@abc.com

我有此代码,但它为某些电子邮件提供了异常(exception)。 “索引超出了数组的范围。”

for (int i = 0; i < eml.Length; i++)
{
int j = i == (eml.Length - 1) ? 0 : 1;
cc = eml[i].ToString();
if (i <= 1)
{
dispeml += cc;
}
else
if (eml[i + (j + k)].ToString() == "@")
{
dispeml += cc;
k = 0;
fl = 1;
}
else
if (eml[i + j].ToString() == "@")
{
dispeml += cc;
fl = 1;
}
else
if (fl == 1)
{
dispeml += cc;
}
else
{
dispeml += "*";
}
}

最佳答案

这里有一个用正则表达式解决这个问题的方法

string input = "jhon@abc.com";
string pattern = @"(?<=[\w]{1})[\w-\._\+%]*(?=[\w]{1}@)";
string result = Regex.Replace(input, pattern, m => new string('*', m.Length));
//j**n@abc.com

解释:

(?<=[\w]{1})名称必须以 1 个单词字符开头

[\w-\._\+%]*替换部分可以包含 0-n 个单词字符,包括 -_.+%

(?=[\w]{1}@)名称必须以一个单词字符结尾,后跟一个 @

根据您希望保持不变的字符数量,您可以更改 {1}{2}或开头或结尾的其他内容。

关于c# - 如何在 C# 中屏蔽/隐藏电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31806538/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com