问一个C#字符串替换?

来源:百度知道 编辑:UC知道 时间:2024/05/31 06:05:48
用户找回密码有两种方式,一是通过密保问题,一是通过邮箱。
这里要说的是邮箱方式——
如果用户的邮箱已经通过了验证,则显示如下:
你的邮箱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

请大侠们帮一把,谢谢!

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:邮箱验证过程是你已经完成了的吧?我这个程序是不验证的,只替换

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

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

2L的做法最简单