Domanda

Ho ottenuto il seguente codice da questa domanda: Qual è il modo migliore per pulire una stringa per il posizionamento in un URL, come il nome della domanda su SO?

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

Questo codice funziona per me con PHP, sta rendendo pulito e l'URL SEO in una sola riga, ma voglio usare lo stesso script nella mia applicazione ASP.NET (C #). Ma non so quale sarà il codice per questa riga in C #. Qualcuno può convertire questo codice PHP in funzione C #.

Grazie

È stato utile?

Soluzione

Per semplificare, è probabilmente più semplice farlo con due regex sostituisci le chiamate, anche se potresti riscriverlo in uno usando il sovraccarico Sostituisci con MatchEvaluator (sarebbe un po 'confuso).

using System.Text.RegularExpressions;

// ...

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

Spero che sia d'aiuto.

Altri suggerimenti

Potrei mancare qualcosa a causa della mancanza di sonno .. ma non potresti semplicemente farlo:

var myUrl = HttpUtility.UrlEncode(UrlToEncode);

Per eseguire la codifica trattino ...

var myUrl = HttpUtility.EncodeUrl(UrlToEncode.Replace(" ", "-"));
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top