1

如何通过整个字符串而不是单个字符列表来修剪字符串?

我想删除 HTML 字符串开头和结尾的所有空格和空格。但是方法String.Trim()确实只有字符集的重载,而不是字符串集。

4

4 回答 4

8

您可以使用HttpUtility.HtmlDecode(String)并使用结果作为输入String.Trim()

MSDN 上的HttpUtility.HtmlDecode MSDN 上的
HttpServerUtility.HtmlDecode(您可以通过Page.Server属性访问的包装器)

string stringWithNonBreakingSpaces;
string trimmedString =  String.Trim(HttpUtility.HtmlDecode(stringWithNonBreakingSpaces));

注意:此解决方案将解码输入中的所有 HTML 字符串。

于 2012-04-17T08:47:42.837 回答
2

Trim 方法默认从当前字符串中删除所有前导和尾随空白字符。

编辑:编辑后问题的解决方案:

string input = @"  &nbsp; <a href='#'>link</a>  &nbsp; ";
Regex regex = new Regex(@"^(&nbsp;|\s)*|(&nbsp;|\s)*$");
string result = regex.Replace(input, String.Empty);

这将删除所有尾随和前导空格和&nbsp;. 您可以将任何字符串或字符组添加到表达式中。如果您要修剪所有选项卡,则正则表达式将简单地变为:

Regex regex = new Regex(@"^(&nbsp;|\s|\t)*|(&nbsp;|\s|\t)*$");
于 2012-04-17T08:45:30.367 回答
1

Use RegEx, as David Heffernan said. It is rather easy to select all spaces at the start of string: ^(\ |&nbsp;)*

于 2012-04-17T08:56:09.390 回答
1

不确定这是否是您要找的东西?

   string str = "hello &nbsp;";
   str.Replace("&nbsp;", "");
   str.Trim();
于 2012-04-17T08:49:31.790 回答