• 1
  • 2
  • 3
  • 4
  • 5
asp.net空间 首 页  »  帮助中心  »  虚拟主机  »  asp.net空间
利用asp去除html标记的四种方法
发布日期:2015-10-8 16:10:45
  利用asp去除html标记的四种方法


  方法一 : 使用"<"和">"


  如果您想要知道如何从文本中删除html标签,即将介绍的这种方法会让您得偿所愿。我们可以利用去掉"<"和">"中间的所有内容来实现删除html标签的愿望。


  在JavaScript中很简单就能达到这样的目的,例如:


  function RemoveHTML( strText )


  {


  var regEx = /<[^>]*>/g;


  return strText.replace(regEx, "");


  }


  现在回到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标签.比如这些无害的标签通常是允许的.


  方法二: 禁用HTML


  想要从文本中删除html标签最简单的方法是直接禁用html标签,这样的话您就不用麻烦的去一一移除它们. 可以使用Replace()函数. 例如:


  strText = Replace(strText, "


  或者直接禁用所有的html:


  strText = Replace(strText, "<", "<")


  这样做虽然可以保证安全,但是也有个缺点就是会使文本显得不太友好.(用户提交的文本会变得难以阅读)


  方法三:使用IE或其他工具


  利用这种方法有很多缺点:


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


  方法四:VBScript


  和上面的三种方法比较,这种方法有个明显的优点就是:使用以下的函数可以限制到具体的html标签


  简介:


  要达到控制被删除的标签列表的目的,可以通过向TAGLIST常数中添加/删除标记来实现. 例如,要保留所有的标签,则从TAGLIST中删除B. 当前的列表包含了MSDN中的所有html标签以及 LAYER 标签. 每个标签要用";"括起来.


  开始标签和结束标签都会被删除,例如""和


  若标签同时在 TAGLIST 和 BLOCKTAGLIST 常数中,则起始标签和结束标签之间的所有内容都会被删除


  没有结束标记的标签不被视为html标签,其内容不会被删除


  块标签若没有结尾标记,从此标签开始到文本结束的所有内容会被删除