c# - 清理带有标题的 URL 的最佳方法是什么

标签 c# asp.net url friendly-url

清理 URL 的最佳方法是什么?我正在寻找这样的 URL

what_is_the_best_headache_medication

我当前的代码

public string CleanURL(string str)
{
    str = str.Replace("!", "");
    str = str.Replace("@", "");
    str = str.Replace("#", "");
    str = str.Replace("$", "");
    str = str.Replace("%", "");
    str = str.Replace("^", "");
    str = str.Replace("&", "");
    str = str.Replace("*", "");
    str = str.Replace("(", "");
    str = str.Replace(")", "");
    str = str.Replace("-", "");
    str = str.Replace("_", "");
    str = str.Replace("+", "");
    str = str.Replace("=", "");
    str = str.Replace("{", "");
    str = str.Replace("[", "");
    str = str.Replace("]", "");
    str = str.Replace("}", "");
    str = str.Replace("|", "");
    str = str.Replace(@"\", "");
    str = str.Replace(":", "");
    str = str.Replace(";", "");
    str = str.Replace(@"\", "");
    str = str.Replace("'", "");
    str = str.Replace("<", "");
    str = str.Replace(">", "");
    str = str.Replace(",", "");
    str = str.Replace(".", "");
    str = str.Replace("`", "");
    str = str.Replace("~", "");
    str = str.Replace("/", "");
    str = str.Replace("?", "");
    str = str.Replace("  ", " ");
    str = str.Replace("   ", " ");
    str = str.Replace("    ", " ");
    str = str.Replace("     ", " ");
    str = str.Replace("      ", " ");
    str = str.Replace("       ", " ");
    str = str.Replace("        ", " ");
    str = str.Replace("         ", " ");
    str = str.Replace("          ", " ");
    str = str.Replace("           ", " ");
    str = str.Replace("            ", " ");
    str = str.Replace("             ", " ");
    str = str.Replace("              ", " ");
    str = str.Replace(" ", "_");
    return str;
}

最佳答案

确定的正则表达式:

public string CleanURL(string str)
{
    str = Regex.Replace(str, "[^a-zA-Z0-9 ]", "");
    str = Regex.Replace(str, " +", "_");
    return str;
}

(未经实际测试,我想不通。)

让我解释一下:

第一行删除所有非字母数字字符(大写或小写)或空格的内容。 第二行用单个下划线替换任何空格序列(1 个或多个顺序)。

关于c# - 清理带有标题的 URL 的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1342775/

相关文章:

c# - 如果实体没有 ID,是否可以让 NHibernate 自动生成 ID,或者如果实体已经有 ID,是否可以使用实体的 ID?

c# - 当 TextMode=Password 时,ASP.NET 文本框大小不同

javascript - 如何检测 HTML 中的可点击链接

php - 如何在 PHP 中应用 URL 规范化规则?

c# - X509Certificate2 p12 是否需要存储?

c# - 验证混合数据中的字符和数字

c# - linq-to-sql 查询结果到 c# 字典 - 如何

c# - 在Web Garden Mode下,除opera之外的所有主流浏览器如何维护进程Id?

c# - FormsAuthentication.SetAuthCookie() 是否需要重定向?

ios - 单击纯 html 链接时,Apple 如何检测是否安装了 iphone 应用程序?