在线工具 在线编程 在线白板 在线工具 在线编程 在线白板

问一个C#字符串替换?

用户找回密码有两种方式,一是通过密保问题,一是通过邮箱。
这里要说的是邮箱方式——
如果用户的邮箱已经通过了验证,则显示如下:
你的邮箱zhangsan@163.com已经通过验证,可以通过邮箱找回密码。
如果用户的邮箱尚未验证,则显示如下:
你的邮箱zh******@163.com尚未验证,不能通过邮箱找回密码。

说白了,也就是邮箱的半隐藏处理
要求前缀显示前两个字符,其它的全由星号*替换,后缀全显示
举例:
7m7@sohu.com —— 7m*@sohu.com
54515122@qq.com —— 54******@qq.com
liumeimei123@yahoo.com.cn —— li**********@yahoo.com.cn

请大侠们帮一把,谢谢!
最新回答
仙味萝莉

2025-02-25 11:41:51

string Email = "asdfasdfasdfasdf@163.com";
Regex reg = new Regex(".");
int replacelLen = Email.IndexOf('@') - 2;
Email = reg.Replace(Email, "*", replacelLen > 0 ? replacelLen : 0, 2);
Console.WriteLine(Email);
Console.ReadKey();
ps:邮箱验证过程是你已经完成了的吧?我这个程序是不验证的,只替换
峋姗簌下落

2025-02-25 09:31:59

你可以在显示的时候把邮箱有截取字符串的方式改成你说的那样,
在需要使用到邮箱的时候在去后台重新获取
邮箱你可以暂时保持在ViewState["email"]
ViewState是页面级的 出了这个页面就会被销毁的资源占用不大
网瘾少女裤裆藏雷

2025-02-25 17:32:23

截取@号前面字符串的长度h,先显示前两个字符,再加上(h-2)和星号即可
旭日东山再起

2025-02-25 05:16:43

2L的做法最简单