经典ASP(VBScript)将HTML代码转换为纯文本

Dan*_*lis 13 html vbscript asp-classic

我正在尝试转换HTML代码,例如&#XXXX; (其中XXXX是一个数字)使用经典ASP(VBScript)的纯文本.

我正在将文本添加到纯文本格式的电子邮件中,如果我将它们添加为HTML代码,它只显示代码并且不会转换它们.

一个修复方法是将电子邮件更改为HTML,这确实解决了该问题,但随后导致我的电子邮件出现其他问题,我将不会介绍.

是否有内置函数或自定义函数可用于将这些HTML代码转换为纯文本?

C. *_*oss 21

你需要的是HTML解码,但遗憾的是ASP不包括一个.

这个功能可以在ASP Nut上找到,并且由我大量修改,应该做你需要的.我测试它是在我的本地计算机上运行的vbscript,它似乎运行良好,即使在1000+范围内使用Unicode符号.

Function HTMLDecode(sText)
    Dim regEx
    Dim matches
    Dim match
    sText = Replace(sText, """, Chr(34))
    sText = Replace(sText, "<"  , Chr(60))
    sText = Replace(sText, ">"  , Chr(62))
    sText = Replace(sText, "&" , Chr(38))
    sText = Replace(sText, " ", Chr(32))


    Set regEx= New RegExp

    With regEx
     .Pattern = "&#(\d+);" 'Match html unicode escapes
     .Global = True
    End With

    Set matches = regEx.Execute(sText)

    'Iterate over matches
    For Each match in matches
        'For each unicode match, replace the whole match, with the ChrW of the digits.

        sText = Replace(sText, match.Value, ChrW(match.SubMatches(0)))
    Next

    HTMLDecode = sText
End Function
Run Code Online (Sandbox Code Playgroud)

注意:您需要在服务器上安装脚本版本5.0才能使用RegExp对象.