Exemple #1
0
        /// <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);
        }
Exemple #2
0
 /// <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);
 }
Exemple #3
0
 /// <summary>
 /// 获取中文姓氏[不支持复姓,如"杨"]
 /// </summary>
 public static string GetFamilyByChineseName(string chineseName)
 {
     if (RegExpHelper.IsRightLength(chineseName, 2))
     {
         return(chineseName.Substring(0, 1));
     }
     return(chineseName);
 }