剪切HTML字符串而不破坏HTML标签 [英] Cutting HTML strings without breaking HTML tags
本文介绍了剪切HTML字符串而不破坏HTML标签的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何编写一个函数,该函数可以在使用HTML标记的情况下将字符串剪切为N长度的字符串,而不会在执行HTML标记时破坏HTML标记。
返回的字符串不需要精确到N个字符。它可以在标记位于N长字符串的边缘之前或之后剪切它。
访问< a href = www.htz.hr>克罗地亚< / A>这个夏天。
CutIt(9)
应该返回 p>
访问
或
访问< a href =www.htz.hr>克罗地亚< / a>
解决方案
我解决了这个问题, ;
静态字符串CutIt(string s,int limit)
{
if(s.Length< ;限制)返回s;
int okIndex = 0;
bool inClosingTag = false;
int numOpenTags = 0;
for(int i = 0; i {
if(s [i] =='<')
{
if(s [i + 1] =='/')
{
inClosingTag = true;
}
else
{
numOpenTags ++; (s [i] =='>')
{
if(s [i-1] =='/')
if
{
numOpenTags--;
}
if(inClosingTag)
{
numOpenTags--;
}
}
if(numOpenTags == 0)okIndex = i;
}
return s.Substring(0,okIndex + 1);
}
How to write a function that can cut a string with HTML tags to an N-length string without breaking HTML tags while doing it.
The returned string doesn't need to be exactly N characters long. It can cut it before or after tag that is on the edge of N-long string.
Visit <a href="www.htz.hr">Croatia</a> this summer.
CutIt(9)
should return
Visit
or
Visit <a href="www.htz.hr">Croatia</a>
解决方案
I solved the problem so here is the code in c#;
static string CutIt(string s, int limit)
{
if (s.Length < limit) return s;
int okIndex = 0;
bool inClosingTag = false;
int numOpenTags = 0;
for (int i = 0; i < limit; i++)
{
if (s[i]=='<')
{
if (s[i+1]=='/')
{
inClosingTag = true;
}
else
{
numOpenTags++;
}
}
if (s[i]=='>')
{
if (s[i-1]=='/')
{
numOpenTags--;
}
if (inClosingTag)
{
numOpenTags--;
}
}
if (numOpenTags == 0) okIndex = i;
}
return s.Substring(0, okIndex + 1);
}
这篇关于剪切HTML字符串而不破坏HTML标签的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文