在一些文字之后加上一个标签

时间:2013-05-15 05:22:49

标签: c# html string stringbuilder

我有一个变量str,它有一些文字。我只是在我的UI上显示这个文本。        但我有一个条件,假设这个变量有5个单词,所以我需要在每50个单词后加上一个标签。

我该怎么做?

下面是我的c#代码,我通过它发送邮件为html

Emailbody += " <tr>";
Emailbody += " <td align='left' valign='Top' nowrap><span class=style17>Purpose of     travel</span></td>";
Emailbody += "<td align='center' valign='Top'>:</td>";
Emailbody += " <td align='left' valign='Top'><span class=style17>&nbsp;&nbsp;" + TextBox1.Text +     "</span></td>";
Emailbody += " <td>&nbsp;</td>";
Emailbody += "  <td align='left' nowrap'><span class=style17>Advance</span></td>";
Emailbody += " <td align='center'>:</td>";
Emailbody += "<td align='left' nowrap><span class=style17>"+TextBox2.Text+"</td>";
Emailbody += " </tr>";

我需要mt TextBox1.Text的解决方案

3 个答案:

答案 0 :(得分:1)

如果您使用的是C#,那么您可以这样做:

    public string SplitLine(string input)
    {
        var wordList = input.Split(' ');
        var sb = new StringBuilder();
        for (int index = 0; index < wordList.Length; index++)
        {
            if(index % 50 == 0 && index > 0)
                sb.Append("<br/>" + wordList[index]);
            else
                sb.Append(wordList[index] + ' ');
        }
        return sb.ToString();
    }

答案 1 :(得分:0)

使用javascript如下:

var count=0;
for(var i=0;i<str.length;i++)
{


  if((str[i])=="")
  {
    count++;
    if(count==50)
    {
      str[i]="<br/>"
      count=0;
    }
  }

}

希望它有所帮助。

答案 2 :(得分:0)

我假设你想在c#中做到这一点?

看看possible duplicate。给定的函数允许您指定而不是多个字符或单词的行宽(以像素为单位),并使用字体和字体大小计算适当的长度。您必须使其适应您的HTML输出,但其余部分保持不变。

您可以使用List,然后像这样:

List<string> lines = WrapText(TextBox1.Text, 300, "Calibri", 11);

string longText = string.Empty

foreach (var item in lines)
{
    longText += item + "</br>";
}

Emailbody += " <tr>";
Emailbody += " <td align='left' valign='Top' nowrap><span class=style17>Purpose of travel</span></td>";
Emailbody += "<td align='center' valign='Top'>:</td>";
Emailbody += " <td align='left' valign='Top'><span class=style17>" + longText + "</span></td>";
Emailbody += " <td>&nbsp;</td>";
Emailbody += "  <td align='left' nowrap'><span class=style17>Advance</span></td>";
Emailbody += " <td align='center'>:</td>";
Emailbody += "<td align='left' nowrap><span class=style17>"+TextBox2.Text+"</td>";
Emailbody += " </tr>";