清理字符串的最快方法,用于URL C#asp.net

时间:2010-06-04 14:30:31

标签: .net-3.5 asp.net-mvc-2 c#-3.0

我一直在使用这个类一段时间来清理数据到我可以在我的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 个答案:

答案 0 :(得分:1)

它可能看起来不漂亮,但我认为你在这里得到的可读性很好。另一种方法是将其分解为几个正则表达式替换语句,但随后一如既往地使用正则表达式,可读性就会消失。

另一个选择是建立匹配及其替换的列表,但我认为这最终会使代码更长。