SenseNet.ContentRepository.ContentNamingHelper.Strip C# (CSharp) Method

Strip() private method

private Strip ( string name ) : string
name string
return string
        private static string Strip(string name)
        {
            int rank = 0;

            string s = name.Normalize(NormalizationForm.FormD);
            StringBuilder sb = new StringBuilder();
            bool lastIsUnderscore = false;
            for (int i = 0; i < s.Length; i++)
            {
                if (CharIsAllowed(s[i]))
                {
                    sb.Append(s[i]);
                    lastIsUnderscore = false;
                    if (Char.IsLetterOrDigit(s[i]))
                        rank++;
                }
                else if (!lastIsUnderscore && Char.GetUnicodeCategory(s[i]) != UnicodeCategory.NonSpacingMark)
                {
                    sb.Append(PlaceholderSymbol);
                    lastIsUnderscore = true;
                }
            }

            if (rank > 0)
                return (sb.ToString().Normalize(NormalizationForm.FormC));

            return string.Empty;
        }