【发布时间】:2011-01-10 19:49:56
【问题描述】:
我想编写一个 C# 方法,将任何标题转换为 URL 友好字符串,类似于 Stack Overflow 所做的:
- 用破折号替换空格
- 去掉括号
- 等
我正在考虑根据 RFC 3986 标准(来自 Wikipedia)删除保留字符,但我不知道这是否足够?它会使链接可用,但有谁知道在stackoverflow这里替换了哪些其他字符?我不想在我的网址中以 %-s 结尾...
当前实现
string result = Regex.Replace(value.Trim(), @"[!*'""`();:@&+=$,/\\?%#\[\]<>«»{}_]");
return Regex.Replace(result.Trim(), @"[\s*[\-–—\s]\s*]", "-");
我的问题
- 我应该删除哪些字符?
- 我应该限制结果字符串的最大长度吗?
- 有人知道 SO 上的标题适用哪些规则吗?
【问题讨论】:
-
如果您可以发布单独的问题而不是将您的问题合并为一个问题,则最好。这样,它可以帮助回答您的问题的人以及其他寻找您的至少一个问题的人。