Last Updated: December 19, 2019
·
9.012K
· joancaron

How to generate clean url slug in C#

public static string ToUrlSlug(string value){ 

    //First to lower case 
    value = value.ToLowerInvariant(); 

    //Remove all accents
    var bytes = Encoding.GetEncoding("Cyrillic").GetBytes(value); 

    value = Encoding.ASCII.GetString(bytes); 

    //Replace spaces 
    value = Regex.Replace(value, @"\s", "-", RegexOptions.Compiled); 

    //Remove invalid chars 
    value = Regex.Replace(value, @"[^\w\s\p{Pd}]", "",RegexOptions.Compiled); 

    //Trim dashes from end 
    value = value.Trim('-', '_'); 

    //Replace double occurences of - or \_ 
    value = Regex.Replace(value, @"([-_]){2,}", "$1", RegexOptions.Compiled); 

    return value ; 
}