我有以下方法时(而且看上去过于昂贵),用于创建永久链接,但它缺少一些东西,是不错的永久链接很重要:使用正则表达式或字符串操作创建永久链接
public string createPermalink(string text)
{
text = text.ToLower().TrimStart().TrimEnd();
foreach (char c in text.ToCharArray())
{
if (!char.IsLetterOrDigit(c) && !char.IsWhiteSpace(c))
{
text = text.Replace(c.ToString(), "");
}
if (char.IsWhiteSpace(c))
{
text = text.Replace(c, '-');
}
}
if (text.Length > 200)
{
text = text.Remove(200);
}
return text;
}
很少的东西,缺乏它:
如果有人输入文字是这样的: "My choiches are:foo,bar"
会得到返回"my-choices-arefoobar"
,它应该是这样的:"my-choiches-are-foo-bar"
和如果有人输入多个空格,它将返回为“---”,这在URL中不好。
有一些更好的方式在正则表达式来做到这一点(我真的只用它几次)?
UPDATE:
要求是:在开头或结尾
- 任何非数字或字母字符不允许
- 任何非数字或字母字符应该“替换 - “
- 替换为” - “字符不应该像”---“一样重复
- 最后是strippi ng字符串索引200以确保它不会太长
就是这样,只有缺少的东西是,如果第一个字符是以“ - ”开头,但我可以为自己添加检查。 – formatc 2012-03-12 14:41:03
更正...现在它检查。 – xanatos 2012-03-12 14:42:28
谢谢,我会看到更快速地使用它! – formatc 2012-03-12 14:46:27