亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

asp.net 安全的截取指定長度的html或者ubb字符串

2024-07-10 13:26:52
字體:
來源:轉載
供稿:網友
在截取字符串時需要記錄每一個標簽是否關閉,如果截取到指定長度還有沒有關閉的標簽,那么我們需要將標簽關閉,或者刪除掉未關閉的標簽。不考慮某些不需要關閉標簽的情況,html開始和結束標簽總是成對出現的,我們可以遍歷輸入的字符串,并在標簽開始時放入堆棧中,遇到結束標簽時從堆棧中彈出一個元素,這樣遍歷到指定長度,堆棧中留下的標簽就是需要補全或者刪除掉的標簽。

下面是代碼實現,如果大家有更好的方法請給出來:

復制代碼 代碼如下:


static char END_SLASH = 'http://www.49028c.com/';

/// <summary>
/// 安全的截斷字符串
/// </summary>
/// <param>輸入串</param>
/// <param>截斷長度</param>
/// <param>true:截斷半截標簽;false:補全半截標簽</param>
/// <param>標簽開始字符</param>
/// <param>標簽結束字符</param>
/// <param>需要關閉的標簽數組</param>
/// <returns>length長度的字符串</returns>
public static string SafeTrim(string input, int length, bool trimHalfTag, char tagStartChar, char tagEndChar, string[] mustCloseTags)
{
if (length <= 0) throw new ArgumentException("length 必須是正數");
if (mustCloseTags == null) throw new ArgumentNullException("mustCloseTags");

int inputLen = input.Length;
if (string.IsNullOrEmpty(input) || inputLen <= length) return input;

string result = string.Empty;

//聲明堆棧用來放標簽
Stack<string> tags = new Stack<string>();

for (int i = 0; i < length; i++)
{
char c = input[i];

if (c == tagStartChar)
{
string tag = string.Empty;
int tagIndex = i + 1;
bool isTagEnd = false;
bool isTagNameEnd = false;
result += c;
bool hasMarkTagInStack = false;
while (tagIndex < inputLen)
{
char tagC = input[tagIndex];
result += tagC;
tagIndex++;
if (tag == string.Empty && tagC == END_SLASH)
{
isTagEnd = true;
continue;
}
if (!isTagNameEnd)
{
if (char.IsLetter(tagC) || char.IsNumber(tagC))
{
tag += tagC;
}
else
{
isTagNameEnd = true;
}
}

if (!string.IsNullOrEmpty(tag))
{
if (isTagNameEnd && !hasMarkTagInStack)
{
if (isTagEnd)
{
tags.Pop();
}
else
{
tags.Push(tag);
}
hasMarkTagInStack = true;
}
}

if (isTagNameEnd)
{
if (tagC == tagEndChar)
{
i = tagIndex - 1;
break;
}
}

}
}
else
{
result += c;
}
}

while (tags.Count > 0)
{
string tag = tags.Pop();

bool isMustCloseTag = false;
foreach (string mustCloseTag in mustCloseTags)
{
if (string.Compare(mustCloseTag, tag, true) == 0)
{
isMustCloseTag = true;
break;
}
}
if (isMustCloseTag)
{
if (trimHalfTag)
{
int lastTagIndex = result.LastIndexOf(tagStartChar.ToString() + tag, StringComparison.CurrentCultureIgnoreCase);

result = result.Substring(0, lastTagIndex);
}
else
{
result += (tagStartChar.ToString() + END_SLASH + tag + tagEndChar);
}
}
}

return result;
}


轉載請保留鏈接 玉開的技術博客
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产亚洲精品久久久久久| 一区二区三区天堂av| 欧美一区二区三区精品电影| 亚洲国产精品成人精品| 日韩影视在线观看| 国语自产精品视频在线看抢先版图片| 亚洲精品成人久久电影| 日韩美女av在线免费观看| 亚洲精品国产精品乱码不99按摩| 久久av在线播放| 成人久久18免费网站图片| 在线视频一区二区| 精品成人在线视频| 2019亚洲日韩新视频| 国产v综合v亚洲欧美久久| 精品美女久久久久久免费| 国产精品v日韩精品| 亚洲精品国产精品国产自| 欧美刺激性大交免费视频| 精品国偷自产在线视频| 欧美日韩在线观看视频小说| 欧美亚洲在线播放| 久久久久久久久久久人体| 九九热这里只有精品6| 欧美性生活大片免费观看网址| 亚洲男人天堂2024| 丰满岳妇乱一区二区三区| 激情久久av一区av二区av三区| 中文字幕久久亚洲| 欧洲精品久久久| 久久九九精品99国产精品| 国产欧美在线视频| 久青草国产97香蕉在线视频| 欧美大尺度电影在线观看| 日本国产一区二区三区| 色狠狠av一区二区三区香蕉蜜桃| 国产日韩欧美视频| 91在线观看免费高清完整版在线观看| 日本一区二区三区四区视频| 亚洲精品国产精品国自产在线| 欧美成人午夜视频| 中文字幕欧美日韩在线| 欧美一级电影在线| 97在线视频国产| 亚洲精品av在线播放| 亚洲国产精品成人一区二区| 国产精品福利小视频| 日韩欧美国产中文字幕| 成人黄色av网站| 久久精品福利视频| 日韩成人av在线| 91美女高潮出水| 亚洲自拍小视频免费观看| 国产亚洲欧美日韩一区二区| 欧美日韩国产成人在线| 国产精品高潮呻吟久久av黑人| 欧美超级乱淫片喷水| 久久精品91久久久久久再现| 亚洲天堂av图片| 国产日韩在线精品av| 久久精品成人动漫| 亚洲第一黄色网| 久久99亚洲精品| 91亚洲精品久久久久久久久久久久| 国产一区私人高清影院| 日韩在线视频免费观看| 国产精品欧美一区二区三区奶水| 青草青草久热精品视频在线网站| 国产精品久久久久久久久久久不卡| 亚洲视频axxx| 亚洲free性xxxx护士白浆| 毛片精品免费在线观看| 精品美女久久久久久免费| 欧美专区第一页| 91精品在线国产| 欧美日韩国产麻豆| 国产精品久久久久久av| 91精品国产色综合久久不卡98| 国产成人激情小视频| 日韩免费av一区二区| 68精品国产免费久久久久久婷婷| 人人做人人澡人人爽欧美| 亚洲黄色成人网| 日韩精品在线观看视频| 亚洲精品福利免费在线观看| 另类专区欧美制服同性| 亚洲色无码播放| 精品久久久久久久久久ntr影视| 欧美最顶级丰满的aⅴ艳星| 久久视频在线直播| 国产精品揄拍一区二区| 国产精品久久久久久av福利| 亚洲国产成人精品久久久国产成人一区| 2019中文在线观看| 久久久久久国产三级电影| 91亚洲精品在线观看| 久久久久久久香蕉网| 成人免费xxxxx在线观看| 成人写真视频福利网| 日韩av在线一区二区| 国产精品aaaa| 成人免费观看49www在线观看| 亚洲欧美日韩直播| 日本中文字幕久久看| 欧美自拍大量在线观看| 久久久久亚洲精品成人网小说| 日韩美女激情视频| 久久久久久成人精品| 亚洲欧美www| 精品一区二区三区四区在线| 国内精品久久影院| 欧美激情一区二区三区久久久| 色偷偷av一区二区三区| 中文字幕亚洲情99在线| 久久久久久一区二区三区| 黄色精品一区二区| 欧美成aaa人片免费看| 国产免费一区视频观看免费| 欧美在线视频免费播放| 欧美视频在线免费看| 国产综合视频在线观看| 日韩精品在线视频| 色噜噜久久综合伊人一本| 九九热r在线视频精品| 欧美亚洲成人精品| 欧美亚洲国产另类| 国产乱人伦真实精品视频| 欧美大肥婆大肥bbbbb| 日韩av影视综合网| 亚洲一区二区久久| 91中文字幕一区| 国产精品亚洲综合天堂夜夜| 福利一区福利二区微拍刺激| 超碰精品一区二区三区乱码| 欧美乱大交xxxxx另类电影| 亚洲桃花岛网站| 永久免费精品影视网站| 一道本无吗dⅴd在线播放一区| 久久久精品亚洲| 91在线免费网站| 亚洲欧美国产日韩天堂区| 久久综合伊人77777| 欧美另类精品xxxx孕妇| 欧美日韩精品在线视频| 午夜免费日韩视频| 国产不卡av在线免费观看| www.亚洲成人| 永久免费看mv网站入口亚洲| 国产日韩欧美日韩大片| 17婷婷久久www| 91视频88av| 久久av红桃一区二区小说| 韩国三级电影久久久久久| 欧美色道久久88综合亚洲精品| 欧美日韩午夜激情| 97精品一区二区视频在线观看| 国产丝袜一区二区| 国产精品视频色| 亚洲福利视频专区| 国产欧美日韩精品丝袜高跟鞋| 久久韩国免费视频| 欧美一区二区视频97| 亚洲va久久久噜噜噜久久天堂| 欧美激情欧美激情|