注册 登录
  • 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

ASP去除HTML标记和JS去除HTML标记

JavaScript 开心洋葱 2427次浏览 已收录 0个评论 手机上查看
文章索引目录
[隐藏]

ASP去除HTML标记和JS去除HTML标记 

现在回到VBScript,   对于Scripting引擎5.0或更高版本(可以通过调用ScriptEngineMajorVersion和ScriptEngineMinorVersion函数来检验版本),我们也可以使用RegExp物体:  

Function   RemoveHTML(   strText   )
Dim   RegEx

Set   RegEx   =   New   RegExp

RegEx.Pattern   =   ” <[^> ]*> “
RegEx.Global   =   True

RemoveHTML   =   RegEx.Replace(strText,   ” “)
End   Function

若不用正则表达式,下面的函数可以达到同样的目的:  

Function   RemoveHTML(   strText   )  
        Dim   nPos1
        Dim   nPos2
       
        nPos1   =   InStr(strText,   ” < “)  
        Do   While   nPos1   >   0  
                nPos2   =   InStr(nPos1   +   1,   strText,   “> “)  
                If   nPos2   >   0   Then  
                        strText   =   Left(strText,   nPos1   –   1)   &   Mid(strText,   nPos2   +   1)  
                Else  
                        Exit   Do  
                End   If  
                nPos1   =   InStr(strText,   ” < “)  
        Loop  
       
        RemoveHTML   =   strText  
End   Function  
以上的方法虽然都可以去掉括号内的html标签,但是这些方法都存在以下问题:  

首先,文本内的任何不表示html的尖括号会被去除.而且两个尖括号中间的文本也会被删掉.换句话说,在文本中插入任何 ” < “或 “> “都会出现不可预料的结果.

另外,这种方法不能控制删除哪些html标签.比如 <b> <i> 这些无害的标签通常是允许的.

其他方法:

方法一   :   禁用HTML
最简单的方法是直接禁用html标签而不用移除它们.   可以使用Replace()函数.   例如:

strText   =   Replace(strText,   ” <script “,   “&lt;script “,   1,   -1,   1)

或者直接禁用所有的html:  
strText   =   Replace(strText,   ” < “,   “&lt; “)

这样做虽然很安全,但显得不够友好.(用户提交的文本会变得难以阅读)  

方法二:   使用 ” < “和 “> “
怎样使得html标签从文本中消失呢?   我们可以去掉 ” < “和 “> “中间的所有内容  

在JavaScript中这很简单:  

function   RemoveHTML(   strText   )
{
var   regEx   =   / <[^> ]*> /g;
return   strText.replace(regEx,   ” “);
}

关于正则表达式可以参考:   http://developer.netscape.com/docs/manuals/js/client/jsguide/regexp.htm.  


方法三:使用IE或其他工具
有很多缺点:

1.p#分页标题#e#

&quot;It&nbsp;&nbsp; may&nbsp;&nbsp; be&nbsp;&nbsp; desirable&nbsp;&nbsp; to&nbsp;&nbsp; parse&nbsp;&nbsp; HTML&nbsp;&nbsp; files&nbsp;&nbsp; inside&nbsp;&nbsp; a&nbsp;&nbsp; Web&nbsp;&nbsp; server&nbsp;&nbsp; process&nbsp;&nbsp; in&nbsp;&nbsp; response&nbsp;&nbsp; to&nbsp;&nbsp; a&nbsp;&nbsp; browser&nbsp;&nbsp; page&nbsp;&nbsp; request.&nbsp;&nbsp; However,&nbsp;&nbsp; the&nbsp;&nbsp; WebBrowser&nbsp;&nbsp; control,&nbsp;&nbsp; DHTML&nbsp;&nbsp; Editing&nbsp;&nbsp; Control,&nbsp;&nbsp; MSHTML,&nbsp;&nbsp; and&nbsp;&nbsp; other&nbsp;&nbsp; Internet&nbsp;&nbsp; Explorer&nbsp;&nbsp; components&nbsp;&nbsp; may&nbsp;&nbsp; not&nbsp;&nbsp; function&nbsp;&nbsp; properly&nbsp;&nbsp; in&nbsp;&nbsp; an&nbsp;&nbsp; Active&nbsp;&nbsp; Server&nbsp;&nbsp; Pages&nbsp;&nbsp; (ASP)&nbsp;&nbsp; page&nbsp;&nbsp; or&nbsp;&nbsp; other&nbsp;&nbsp; application&nbsp;&nbsp; run&nbsp;&nbsp; in&nbsp;&nbsp; a&nbsp;&nbsp; Web&nbsp;&nbsp; server&nbsp;&nbsp; application. &quot;&nbsp;&nbsp; (http://support.microsoft.com/support/kb/articles/Q244/0/85.ASP?LN=EN-US&amp;SD=gn&amp;FR=0)&nbsp;&nbsp;</p>

 

方法四:VBScript
以下的函数可以限制到具体的html标签
简介:  

要控制被删除的标签列表,可以通过向TAGLIST常数中添加/删除标记来实现.   例如,要保留所有的 <B> 标签,则从TAGLIST中删除B.   当前的列表包含了MSDN中的所有html标签以及   LAYER   标签.   每个标签要用 “; “括起来.  
开始标签和结束标签都会被删除,例如 ” <A…> “和 </A…>  
若标签同时在   TAGLIST   和   BLOCKTAGLIST   常数中,则起始标签和结束标签之间的所有内容都会被删除  
没有结束标记的标签不被视为html标签,其内容不会被删除  
块标签若没有结尾标记,从此标签开始到文本结束的所有内容会被删除  
若 ” <!– “后跟的字符不是空格,注释标签不会被删除  
使用这个函数很简单:  
strPlainText   =   RemoveHTML(strTextWithHTML)
函数内容如下:  

Function   RemoveHTML(   strText   )
        Dim   TAGLIST
        TAGLIST   =   “;!–;!DOCTYPE;A;ACRONYM;ADDRESS;APPLET;AREA;B;BASE;BASEFONT; ”   &_
                            “BGSOUND;BIG;BLOCKQUOTE;BODY;BR;BUTTON;CAPTION;CENTER;CITE;CODE; ”   &_
                            “COL;COLGROUP;COMMENT;DD;DEL;DFN;DIR;DIV;DL;DT;EM;EMBED;FIELDSET; ”   &_
                            “FONT;FORM;FRAME;FRAMESET;HEAD;H1;H2;H3;H4;H5;H6;HR;HTML;I;IFRAME;IMG; ”   &_
                            “INPUT;INS;ISINDEX;KBD;LABEL;LAYER;LAGEND;LI;LINK;LISTING;MAP;MARQUEE; ”   &_
                            “MENU;META;NOBR;NOFRAMES;NOSCRIPT;OBJECT;OL;OPTION;P;PARAM;PLAINTEXT; ”   &_
                            “PRE;Q;S;SAMP;SCRIPT;SELECT;SMALL;SPAN;STRIKE;STRONG;STYLE;SUB;SUP; ”   &_
                            “TABLE;TBODY;TD;TEXTAREA;TFOOT;TH;THEAD;TITLE;TR;TT;U;UL;VAR;WBR;XMP; “

        Const   BLOCKTAGLIST   =   “;APPLET;EMBED;FRAMESET;HEAD;NOFRAMES;NOSCRIPT;OBJECT;SCRIPT;STYLE; “
       
        Dim   nPos1
        Dim   nPos2
        Dim   nPos3
        Dim   strResult
        Dim   strTagName#p#分页标题#e#
        Dim   bRemove
        Dim   bSearchForBlock
       
        nPos1   =   InStr(strText,   ” < “)
        Do   While   nPos1   >   0
                nPos2   =   InStr(nPos1   +   1,   strText,   “> “)
                If   nPos2   >   0   Then
                        strTagName   =   Mid(strText,   nPos1   +   1,   nPos2   –   nPos1   –   1)
        strTagName   =   Replace(Replace(strTagName,   vbCr,   ”   “),   vbLf,   ”   “)

                        nPos3   =   InStr(strTagName,   ”   “)
                        If   nPos3   >   0   Then
                                strTagName   =   Left(strTagName,   nPos3   –   1)
                        End   If
                       
                        If   Left(strTagName,   1)   =   “/ ”   Then
                                strTagName   =   Mid(strTagName,   2)
                                bSearchForBlock   =   False
                        Else
                                bSearchForBlock   =   True
                        End   If
                       
                        If   InStr(1,   TAGLIST,   “; ”   &   strTagName   &   “; “,   vbTextCompare)   >   0   Then
                                bRemove   =   True
                                If   bSearchForBlock   Then
                                        If   InStr(1,   BLOCKTAGLIST,   “; ”   &   strTagName   &   “; “,   vbTextCompare)   >   0   Then#p#分页标题#e#
                                                nPos2   =   Len(strText)
                                                nPos3   =   InStr(nPos1   +   1,   strText,   ” </ ”   &   strTagName,   vbTextCompare)
                                                If   nPos3   >   0   Then
                                                        nPos3   =   InStr(nPos3   +   1,   strText,   “> “)
                                                End   If
                                               
                                                If   nPos3   >   0   Then
                                                        nPos2   =   nPos3
                                                End   If
                                        End   If
                                End   If
                        Else
                                bRemove   =   False
                        End   If
                       
                        If   bRemove   Then
                                strResult   =   strResult   &   Left(strText,   nPos1   –   1)
                                strText   =   Mid(strText,   nPos2   +   1)#p#分页标题#e#
                        Else
                                strResult   =   strResult   &   Left(strText,   nPos1)
                                strText   =   Mid(strText,   nPos1   +   1)
                        End   If
                Else
                        strResult   =   strResult   &   strText
                        strText   =   ” “
                End   If
               
                nPos1   =   InStr(strText,   ” < “)
        Loop
        strResult   =   strResult   &   strText
       
        RemoveHTML   =   strResult
End   Function


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明ASP去除HTML标记和JS去除HTML标记
喜欢 (0)
[开心洋葱]
分享 (0)
关于作者:
开心洋葱,开心洋葱头,水墨

您必须 登录 才能发表评论!

……
加载中……