sql server中有一个函数Stuff,功能是删除指定字符指定位置开始的字符串并插入新的字符串。在sql server中很容易就实现手机号隐藏中间4位,用星号代替。如下:
stuff(a.LoginName,4,4,'****')
遗憾的是C#中没有这个函数,简单处理:
public static string GetLoginNameDisplay(this string loginName)
{
string result = "";
result = loginName.Substring(0, 3) + "****" + loginName.Substring(7);
return result;
}
下面是我写的一个通用扩展方法,实现了stuff功能:
public static string Stuff(this string str,int startPosition,int length,char replaceChar)
{
if (string.IsNullOrEmpty(str))
return "";
string result = "";
if (startPosition <0)
return "";
result = str.Substring(0, startPosition) + "".PadLeft(length, replaceChar);
var indexNew = startPosition + length;
if (indexNew <= str.Length - 1)
result += str.Substring(indexNew);
return result;
}