Самый быстрый способ очистить строку для использования в URL C # asp.net - PullRequest
0 голосов
/ 04 июня 2010

Я уже некоторое время использую этот класс для очистки данных в такую ​​форму, что я могу использовать их в своих URL, и мне было интересно, есть ли более быстрый / лучший способ?

Порядокзамены важны, так как они гарантируют, что в начале текста не будет косой черты, а в боковой части текста нет двойной косой черты.

/// <summary>
/// Cleanses String for URL
/// </summary>
/// <param name="s">string</param>
/// <returns>URL Friendly String</returns>
public static string Clean(this string s)
{
    var sb = new StringBuilder(s.Trim());
    sb.Replace("&rsquo;", "");
    sb.Replace("-", " ");
    sb.Replace("/", "");
    sb.Replace("&", "and");
    sb.Replace(",", "");
    sb.Replace("  ", " ");
    sb.Replace(" ", "-");
    sb.Replace("'", "");
    sb.Replace(".", "");
    sb.Replace("eacute;", "e");
    sb.Replace("--", "-");

    if (sb[0].ToString() == "-") { sb[0].ToString().Replace("-", ""); }

    return sb.ToString().ToLower();
}

Спасибо.

1 Ответ

1 голос
/ 04 июня 2010

Это может выглядеть не очень красиво, но я думаю, что то, что у вас здесь есть, хорошо с точки зрения читабельности. Один из вариантов - разбить это на несколько операторов замены Regex, но тогда, как всегда с регулярными выражениями, читаемость выходит за пределы окна.

Другой альтернативой может быть создание списка совпадений и их замен, но я думаю, что в итоге это приведет к увеличению длины кода.

...