将输入字符串转换为干净,可读且浏览器可接受的路径数据

场景:

有一个名为“AJAX,JSON和HTML5!网络的未来?”的标题。
想把它转换成这个“ajax-json-html5-the-future-of-web”

基本上我需要的是一个删除所有非字母表的函数,然后用一个连字符和小写字母替换它们。

问题:

通过一些努力,我可以用String.ReplaceString.CharAt做到这一点,但我认为这太乱了。 我对么? 我相信Regex是要走的路。 由于我的正则表达式非常生疏,我无法获得显示所需输出的内容。:)
免责声明:这基本上是给我一个Codez。 但我猜我已经完全涵盖了我的选择。

使用正则表达式的一个例子 – 这应该让你朝着正确的方向(编辑 – 添加清除尾随破折号,使它看起来更好)

  var input = "This is some amazing Rexex Stuff!"; input = Regex.Replace(input, @"[\W]+", "-").ToLower(); input = Regex.Replace(input, @"[-]+$", ""); Console.Write(input); Console.Read(); 

这是我过去常用的一些代码,它并不完美,但它应该让你开始:

编辑:仍然很丑,但输出更好: ajax-json-html5-the-future-of-web-

 string title = "AJAX, JSON & HTML5! The future of web?"; title = Regex.Replace(title, @"&|&", "-"); StringBuilder builder = new StringBuilder(); for (int i = 0; i < title.Length; i++) { if (char.IsLetter(title[i]) || char.IsDigit(title[i])) builder.Append(title[i]); else builder.Append('-'); } string result = builder.ToString().ToLower(); result = Regex.Replace(result, "-+", "-");