我需要删除所有不能成为网址一部分的字符,例如空格,<,>等等。
我从数据库中获取数据 例如,如果检索到的数据是:Product #number 123!
新字符串应为:Product-number-123
我应该使用正则表达式吗?那有正则表达式吗? 感谢
答案 0 :(得分:2)
以下是如何从“普通”字符串生成符合URL的字符串的示例:
public static string GenerateSlug(string phrase)
{
string str = phrase.ToLower();
str = Regex.Replace(str, @"[^a-z0-9\s-]", ""); // invalid chars
str = Regex.Replace(str, @"\s+", " ").Trim(); // convert multiple spaces into one space
str = str.Substring(0, str.Length <= 45 ? str.Length : 45).Trim(); // cut and trim it
str = Regex.Replace(str, @"\s", "-"); // hyphens
return str;
}
如果您确定始终需要完整的字符串,则可能需要删除剪裁部分。
答案 1 :(得分:1)
只需执行“&lt;”等特殊字符的替换你可以使用Server.UrlEncode(string s)
。您可以使用Server.UrlDecode(string s)
执行相反的操作。
答案 2 :(得分:1)
执行此操作的简单正则表达式是:
string cleaned = Regex.Replace(url, @"[^a-zA-Z0-9]+","-");