0

是否有任何现有的 ASP.NET MVC 库或代码可以将一些字符串转换为漂亮的 url,就像 stackoverflow 对问题所做的那样?

有字符串:

你好呀!这有点奇怪,带有重音符号和时髦的 - / 字符 (29)

类似于:

Hello-there-This-is-some-weird-accented-words-and-funcky-Characters-29

4

1 回答 1

1

好吧,之前已经回答了删除变音符号。

public static string RemoveDiacritics(string text) 
{
    var normalizedString = text.Normalize(NormalizationForm.FormD);
    var stringBuilder = new StringBuilder();

    foreach (var c in normalizedString)
    {
        var unicodeCategory = CharUnicodeInfo.GetUnicodeCategory(c);
        if (unicodeCategory != UnicodeCategory.NonSpacingMark)
        {
            stringBuilder.Append(c);
        }
    }

    return stringBuilder.ToString().Normalize(NormalizationForm.FormC);
}

如果你选择RemoveDiacritics,那么你需要做的就是一些正则表达式替换,用一个破折号替换所有非字母数字字符。

public static string PrettyUrl(string s)
{
    return Regex.Replace(RemoveDiacritics(s), "[^a-zA-Z0-9]+", "-").Trim('-');
}

小提琴

于 2014-10-01T00:39:35.500 回答