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; }