2010-04-29 17 views

回答

8

現在有:

public static class StockStandardFunctions 
{ 
    public static string Nl2br(this string input) 
    { 
     return input.Nl2br(true); 
    } 

    public static string Nl2br(this string input, bool is_xhtml) 
    { 
     return input.Replace("\r\n", is_xhtml ? "<br />\r\n" : "<br>\r\n"); 
    } 
} 

修改爲更緊密地遵循php規範nl2br(感謝Max指出了這一點)。這仍然假設\ r \ n雖然新行...

+0

我的印象是,nl2br比這更強大。雖然我可能是錯的。 – 2010-04-29 15:08:58

+0

@Daniel:你拼錯了標準;) – 2010-04-30 05:44:45

+0

@myotherme:希望我能說這是故意的! (固定) – 2010-04-30 07:47:02

2
mystring.Replace("\r\n","<br />"); 
3

我不相信有一個「股票標準功能」這樣做完全一樣的PHP的nl2br()函數但是下面將做equivelant:

myString.Replace("\r\n", "<br />"); 
+0

如果其中一個非常嚴格,這個方法調用顯然不像phps nl2br「完全一樣」。有關nl2br實際所做的更詳細的說明,請參閱:http://us3.php.net/nl2br - 那不僅僅是爲了這個答案,而是爲了目前的大部分答案。 – Max 2010-04-29 14:48:51

+0

問題問'有沒有像...這樣的東西',這與'有一些完全相同的東西'是不同的。這個解決方案是'類似'的。 – 2010-04-29 14:54:12

4

所有這些答案都是非常正確的,但您應該做一個mystring.Replace("\r?\n", "<br />");來捕獲UNIX行結束,如果您的源(用戶輸入或數據庫)可能實現。

1

什麼沿着線的東西:

public static string Nl2br(string str) 
{ 
    return Nl2br(str, true); 
} 

public static string Nl2br(string str, bool isXHTML) 
{ 
    string brTag = "<br>"; 
    if (isXHTML) { 
     brTag = "<br />"; 
    } 
    return str.Replace("\r\n", brTag + "\r\n"); 
} 

下面是PHP的機制的文檔函數簽名:

串nl2br(字符串$字符串[, 布爾$ is_xhtml =真])

PHP函數在中斷標籤後面還附加了一個換行符。