我有一个变量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> " + TextBox1.Text + "</span></td>";
Emailbody += " <td> </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的解决方案
答案 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> </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>";