Función para crear URL Amigables
Ésta función es una adaptación del código JS de Prestashop, la cual sirve para crear una url amigable basada en un texto.
public static string urlAmigable(string str) { str = str.ToUpper(); str = str.ToLower(); str = str.Trim(); /* Lowercase */ str = Reemplaza(str, "[àáâãåāăąа]", "a"); str = Reemplaza(str, "[б]", "b"); str = Reemplaza(str, "[çćĉčц]", "c"); str = Reemplaza(str, "[ďđд]", "d"); str = Reemplaza(str, "[èéêëēĕėęěеэ]", "e"); str = Reemplaza(str, "[ф]", "f"); str = Reemplaza(str, "[ğġģгґ]", "g"); str = Reemplaza(str, "[ĥħ]", "h"); str = Reemplaza(str, "[ìíîïĩīĭįıиі]", "i"); str = Reemplaza(str, "[ĵй]", "j"); str = Reemplaza(str, "[ķĸк]", "k"); str = Reemplaza(str, "[ĺļľŀłл]", "l"); str = Reemplaza(str, "[м]", "m"); str = Reemplaza(str, "[ñńņňʼnŋн]", "n"); str = Reemplaza(str, "[òóôõøōŏőо]", "o"); str = Reemplaza(str, "[п]", "p"); str = Reemplaza(str, "[ŕŗřр]", "r"); str = Reemplaza(str, "[śŝşšс]", "s"); str = Reemplaza(str, "[ß]", "ss"); str = Reemplaza(str, "[ţťŧт]", "t"); str = Reemplaza(str, "[ùúûũūŭůűųу]", "u"); str = Reemplaza(str, "[в]", "v"); str = Reemplaza(str, "[ŵ]", "w"); str = Reemplaza(str, "[ÿŷýы]", "y"); str = Reemplaza(str, "[źżžз]", "z"); str = Reemplaza(str, "[äæ]", "ae"); str = Reemplaza(str, "[ч]", "ch"); str = Reemplaza(str, "[х]", "kh"); str = Reemplaza(str, @"[œö]", "oe"); str = Reemplaza(str, @"[ü]", "ue"); str = Reemplaza(str, @"[ш]", "sh"); str = Reemplaza(str, @"[щ]", "ssh"); str = Reemplaza(str, @"[я]", "ya"); str = Reemplaza(str, @"[є]", "ye"); str = Reemplaza(str, @"[ї]", "yi"); str = Reemplaza(str, @"[ё]", "yo"); str = Reemplaza(str, @"[ю]", "yu"); str = Reemplaza(str, @"[ж]", "zh"); /* Uppercase */ str = Reemplaza(str, @"[ĀĂĄÀÁÂÃÄÅА]", "A"); str = Reemplaza(str, @"[Б]", "B"); str = Reemplaza(str, @"[ÇĆĈĊČЦ]", "C"); str = Reemplaza(str, @"[ĎĐД]", "D"); str = Reemplaza(str, @"[ÈÉÊËĒĔĖĘĚЕЭ]", "E"); str = Reemplaza(str, @"[Ф]", "F"); str = Reemplaza(str, @"[ĜĞĠĢГҐ]", "G"); str = Reemplaza(str, @"[ĤĦ]", "H"); str = Reemplaza(str, @"[ĨĪĬĮİИІ]", "I"); str = Reemplaza(str, @"[ĴЙ]", "J"); str = Reemplaza(str, @"[ĶК]", "K"); str = Reemplaza(str, @"[ĹĻĽĹŁЛ]", "L"); str = Reemplaza(str, @"[М]", "M"); str = Reemplaza(str, @"[ÑŃŅŇŊН]", "N"); str = Reemplaza(str, @"[ÓŌŎŐО]", "O"); str = Reemplaza(str, @"[П]", "P"); str = Reemplaza(str, @"[ŔŖŘР]", "R"); str = Reemplaza(str, @"[ŚŜŞŠС]", "S"); str = Reemplaza(str, @"[ŢŤŦТ]", "T"); str = Reemplaza(str, @"[ÙÚÛŨŪŬŮŰŲУ]", "U"); str = Reemplaza(str, @"[В]", "V"); str = Reemplaza(str, @"[Ŵ]", "W"); str = Reemplaza(str, @"[ŶЫ]", "Y"); str = Reemplaza(str, @"[ŹŻŽЗ]", "Z"); str = Reemplaza(str, @"[ÄÆ]", "AE"); str = Reemplaza(str, @"[Ч]", "CH"); str = Reemplaza(str, @"[Х]", "KH"); str = Reemplaza(str, @"[ŒÖ]", "OE"); str = Reemplaza(str, @"[Ü]", "UE"); str = Reemplaza(str, @"[Ш]", "SH"); str = Reemplaza(str, @"[Щ]", "SHH"); str = Reemplaza(str, @"[Я]", "YA"); str = Reemplaza(str, @"[Є]", "YE"); str = Reemplaza(str, @"[Ї]", "YI"); str = Reemplaza(str, @"[Ё]", "YO"); str = Reemplaza(str, @"[Ю]", "YU"); str = Reemplaza(str, @"[Ж]", "ZH"); str = str.ToLower(); str = Reemplaza(str, @"[^a-z0-9\s\'\:\/\[\]-]", ""); str = Reemplaza(str, @"[()!?.&^~+*/:;<=>]", ""); str = Reemplaza(str, @"[\s\'\:\/\[\]-]+", " "); str = Reemplaza(str, @"[ ]", "-"); str = Reemplaza(str, "[\"'|,;%]", ""); return str; }
