C # içine bu PHP komut dönüştürmek nasıl?

2 Cevap

http://stackoverflow.com/questions/539920/what-is-the-best-way-to-clean-a-string-for-placement-in-a-url-like-the-question: Ben bu sorunun aşağıdaki kod var

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

Bu kod PHP ile benim için çalışıyor, onun sadece bir satırda temiz ve SEO'd url yapmaktan, ama benim ASP.NET (C #) uygulama aynı komut dosyası kullanmak istiyorum. Ancak C #, bu hat için kod ne olacağını bilmiyorum. Herkes C # fonksiyon içine PHP kodu dönüştürmek lütfen edebilirsiniz.

Teşekkürler

2 Cevap

Basit tutmak, bu could MatchEvaluator ile (Replace aşırı kullanarak birine onu yeniden rağmen iki regex, aramaları ile değiştirin bunu yapmak için muhtemelen en kolay o ) biraz hacky olacaktır.

using System.Text.RegularExpressions;

// ...

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

Umut olur.

Ben uyku eksikliği nedeniyle eksik bir şey olabilir .. ama sadece sadece bu yapamadık:

var myUrl = HttpUtility.UrlEncode(UrlToEncode);

Dash kodlama yapmak için ...

var myUrl = HttpUtility.EncodeUrl(UrlToEncode.Replace(" ", "-"));