Frage

Ich habe den folgenden Code aus dieser Frage: Was ist der beste Weg ist, auf SO eine Zeichenfolge für die Platzierung in einer URL, wie dem Namen der Frage zu reinigen?

$str = strtolower( 
  preg_replace( array('/[^a-z0-9\- ]/i', '/[ \-]+/'), array('', '-'), 
  $urlPart ) );

Dieser Code funktioniert für mich mit PHP, es ist sauber und SEO'd URLs in nur eine Zeile zu machen, aber ich möchte in meiner ASP.NET (C #) Anwendung das gleiche Skript verwenden. Aber weiß nicht, was wird der Code für diese Linie in C # sein. Kann jemand bitte diesen PHP-Code in C # Funktion konvertieren.

Danke

War es hilfreich?

Lösung

Um es einfach, es ist wahrscheinlich am einfachsten mit zwei Regex zu tun, Anrufe ersetzen, wenn Sie könnte umschreiben sie in eine mit der Replace Überlastung mit MatchEvaluator (es wäre ein bisschen hacky sein).

using System.Text.RegularExpressions;

// ...

var str = Regex.Replace(Regex.Replace(urlPart, @"[^a-z0-9\- ]/i", ""), @"[ \-]+", "-").ToLower();

Ich hoffe, das hilft.

Andere Tipps

ich etwas fehlt möglicherweise wegen des Mangels an Schlaf .. aber nicht konnte man einfach nur dies zu tun:

var myUrl = HttpUtility.UrlEncode(UrlToEncode);

Um Strich-Codierung zu tun ...

var myUrl = HttpUtility.EncodeUrl(UrlToEncode.Replace(" ", "-"));
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top