我试图用< br />替换ASP.NET TextBox的Text属性中出现的所有“\ n”使用String.Repalce函数,但它似乎不起作用:
taEmailText.Text.Replace("\n", "<br />")
作为解决方案,我使用的是Regex.Replace:
New Regex("\n").Replace(taEmailText.Text, "<br />")
我的问题是为什么String.Replace找不到“\ n”为什么,即使这个解决方案已在许多网站上提出并且它已经为很多人工作。
谢谢,
答案 0 :(得分:4)
在.NET中,字符串对象是不可变的,因此String.Replace
返回带有替换字符串的新字符串。您需要分配结果:
taEmailText.Text = taEmailText.Text.Replace("\n", "<br />")
此外,当您需要正则表达式时,不是创建新的Regex
对象,而是static methods available:
result = Regex.Replace(input, pattern, replacement)
编辑(根据评论):
刚试过这个:
Sub Main()
Dim result As String = "One\nTwo".Replace("\n", "<br />")
Console.WriteLine(result)
End Sub
结果是:
One<br />Two
答案 1 :(得分:0)
问题是方法调用的结果被忽略了。您应该更仔细地阅读MSDN documentation:
返回一个新字符串,其中所有出现...
因此:
taEmailText.Text = taEmailText.Text.Replace("\n", "<br />")
答案 2 :(得分:0)
您可能想要同时替换\ r和\ n或使用Environment.NewLine
常量。
var replacedText = TextBox1.Text.Replace(Environment.NewLine, "<br />");