题
我从这个问题中得到了以下代码:清理字符串以放置在URL中的最佳方法是什么,例如SO上的问题名称?
$str = strtolower(
preg_replace( array('/[^a-z0-9\- ]/i', '/[ \-]+/'), array('', '-'),
$urlPart ) );
这段代码适用于PHP,它只需一行即可完成SEO和SEO的URL,但我希望在我的ASP.NET(C#)应用程序中使用相同的脚本。但是不知道C#中这行的代码是什么。任何人都可以将这个PHP代码转换为C#函数。
由于
解决方案
为了简单起见,使用两个正则表达式替换调用可能最简单,尽管可以使用替换
重载将其重写为一个 MatchEvaluator
(这会有点hacky)。
using System.Text.RegularExpressions;
// ...
var str = Regex.Replace(Regex.Replace(urlPart, @"[^a-z0-9\- ]/i", ""), @"[ \-]+", "-").ToLower();
希望有所帮助。
其他提示
由于睡眠不足,我可能会遗漏一些东西..但你不能只是这样做:
var myUrl = HttpUtility.UrlEncode(UrlToEncode);
做短划线编码...
var myUrl = HttpUtility.EncodeUrl(UrlToEncode.Replace(" ", "-"));
不隶属于 StackOverflow