/// <summary> /// 获取指定字符隐藏后的字符串 /// </summary> /// <param name="str">待隐藏字符串</param> /// <param name="hiddenType">字符串隐藏类型</param> /// <param name="hiddenLength">隐藏长度</param> /// <param name="hiddenChar">隐藏字符</param> /// <returns></returns> public static string GetHiddenString(string str, StringHiddenType hiddenType = StringHiddenType.Start, int hiddenLength = 4, char hiddenChar = '*') { string retVal = str; if (RegExpHelper.IsRightLength(str, (uint)hiddenLength + 1)) { if (hiddenType == StringHiddenType.Start) { retVal = string.Format("{0}{1}", new string(hiddenChar, hiddenLength), str.Substring(hiddenLength)); } else if (hiddenType == StringHiddenType.End) { retVal = string.Format("{0}{1}", str.Substring(0, str.Length - hiddenLength), new string(hiddenChar, hiddenLength)); } else if (hiddenType == StringHiddenType.Middle) { var tmpArray = str.ToCharArray(); for (int i = 0; i < hiddenLength; i++) { var j = (tmpArray.Length - i) / 2; while (j < tmpArray.Length && tmpArray[j] == '*') { j++; } tmpArray[j] = '*'; // 后面改成移除方式 } retVal = new string(tmpArray); } } return(retVal); }
/// <summary> /// 隐藏中文姓名[不支持复姓,如"杨**"] /// </summary> public static string GetHiddenNameByChineseName(string chineseName, char replaceChar = '*') { if (RegExpHelper.IsRightLength(chineseName, 2)) { return(string.Format("{0}{1}", GetFamilyByChineseName(chineseName), new string(replaceChar, 2))); } return(chineseName); }
/// <summary> /// 获取中文姓氏[不支持复姓,如"杨"] /// </summary> public static string GetFamilyByChineseName(string chineseName) { if (RegExpHelper.IsRightLength(chineseName, 2)) { return(chineseName.Substring(0, 1)); } return(chineseName); }