所以隨手寫了一下
如有更好的方式可提供喔謝謝!!
/// <summary>
/// 遮罩電話 (十個字 手機市話)(九個字 市話)(十個字以上前四後三)(四個字以下回傳空白)
/// </summary>
/// <param name="pStr">字串</param>
/// <returns>string</returns>
public static string MaskString(string pStr)
{
string mReturn = "";
if (pStr.Length == 9 && pStr.StartsWith("0")) //9碼的如高雄
{
mReturn = pStr.Substring(0,2) + "-XXX-" + pStr.Substring(5,4);
}
else if (pStr.Length == 10 && pStr.StartsWith("09"))//手機
{
mReturn = pStr.Substring(0, 4) + "-XXX-" + pStr.Substring(7, 3);
}
else if (pStr.Length == 10 && pStr.StartsWith("0"))//台北市話
{
mReturn = pStr.Substring(0, 2) + "-XXXX-" + pStr.Substring(6, 4);
}
else
{
if (pStr.Length > 10)//十個字以上
{
for (int i = 0; i < pStr.Length ; i++)
{
if ((i == 0 || i <= 3) || (i >= pStr.Length - 3)) //前四個字 後三個字出現
{
mReturn += pStr.Substring(i, 1);
}
else
{
mReturn += "X";
}
}
}
else if(pStr.Length >= 4)//四個字以上才會做
{
for (int i = 0; i < pStr.Length; i++)
{
if (i >= pStr.Length - 3) //後三個字出現
{
mReturn += pStr.Substring(i, 1);
}
else
{
mReturn += "X";
}
}
}
}
return mReturn;
}