Pergunta

Eu tenho o seguinte código a partir desta pergunta: Qual é a melhor maneira de limpar uma corda para a colocação em uma URL, como o nome pergunta sobre SO?

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

Esse código funciona para mim com PHP, a sua tornando limpo e url do SEO'd em apenas uma linha, mas eu quero usar o mesmo script na minha aplicação ASP.NET (C #). Mas não sei o que vai ser o código para esta linha em C #. Alguém por favor pode converter este código PHP em função de C #.

Graças

Foi útil?

Solução

Para mantê-lo simples, é provavelmente mais fácil de fazê-lo com dois regex substituir chamadas, embora você poderia reescrevê-lo em um usando a sobrecarga Replace com MatchEvaluator (seria um pouco hacky).

using System.Text.RegularExpressions;

// ...

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

Espero que ajude.

Outras dicas

eu possa estar faltando alguma coisa, devido à falta de sono .. mas você não poderia simplesmente fazer isso:

var myUrl = HttpUtility.UrlEncode(UrlToEncode);

Para fazer traço codificação ...

var myUrl = HttpUtility.EncodeUrl(UrlToEncode.Replace(" ", "-"));
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top