C#自定义实现sql中的stuff函数功能--手机号隐藏中间4位,并用星号代替

C#自定义实现sql中的stuff函数功能--手机号隐藏中间4位,并用星号代替

2405发表于2016-06-22

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


小编蓝狐