VBScript 文本格式问题

VBScript text Formatting issues

我的数据中包含 <br><BR> 标签。我必须更新 运行 VBScript Classic ASP 的旧站点。我对这两个几乎一无所知,但我想出了一些骇人听闻的逻辑来尝试快速解决问题,但我不明白为什么它不起作用。

    If InStr(1,objRecN("News"),"<BR>")> 1 Then
     response.write "This is 1<BR>"
     body = Replace(objRecN("News"),"<BR>", vbCrLf)
Else
     response.write "This is 2<br>"
     body = Replace(objRecN("News"),"<br>", vbCrLf)
End If

Response.Writes 正在有效地证明正在应用正确的逻辑,但替换不起作用。

 body = Replace(Replace(objRecN("News"),"<br>", vbCrLf), "<BR>", vbCrLf)

这也不起作用。这是我第一次尝试解决这个问题。有什么线索吗?

一旦应用其他逻辑,它就会崩溃!

  If InStr(1,objRecN("News"),"<BR>")> 1 Then
    response.write "This is 1<BR>"
     body = Replace(objRecN("News"),"<BR>", vbCrLf )
    End If

所有硬信息 (c) @Alex。

VBScript 的 Replace function 有效;它甚至可以被要求忽略大小写(标记使用预定义的 vbTextCompare 而不是幻数)。如果看起来不是这样,则应归咎于程序员。证据:

>> s = "abc<br>def<BR>ghi"
>> WScript.Echo qq(s)
>> s = Replace(s, "<br>", "!!!!", 1, -1, vbTextCompare)
>> WScript.Echo qq(s)
>>
"abc<br>def<BR>ghi"
"abc!!!!def!!!!ghi"

如果您用 vbCrLf(或其他空格)替换,然后将结果写入 HTML,您将不会 'see' Replace 为您完成的艰苦工作。

如果你坚持要进行两次(或更多次)替换,则必须将之前的结果提供给当前操作。这就是为什么你的

body = Replace(objRecN("News"),"<BR>", vbCrLf)
body = Replace(objRecN("News"),"<br>", vbCrLf)

'work'分开但不在一起。相比之下,两者

body = objRecN("News")
body = Replace(body,"<BR>", vbCrLf)
body = Replace(body,"<br>", vbCrLf)

body = Replace(Replace(objRecN("News"),"<br>", vbCrLf), "<BR>", vbCrLf)

将处理所有 <BR><br>,但不会处理 <Br>,这对于 vbTextCompare 版本来说没有问题。

如果您的下一个数据包含 <br/><br /><br />,您将需要一个正则表达式。

谢谢大家的帮助。

body = Replace(body,"<BR>", "<br>")

虽然我从你的帖子中学到了很多东西。这是实际解决我的问题的代码。如果我没有更好地传达它,我很抱歉。