我的数据中包含<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
答案 0 :(得分:2)
所有硬信息(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,则不会“看到”替换为您所做的努力。
如果您坚持两次(或更多次)替换,则必须将之前的结果提供给当前操作。这就是为什么你的
body = Replace(objRecN("News"),"<BR>", vbCrLf)
body = Replace(objRecN("News"),"<br>", vbCrLf)
'分开工作'但不在一起。相比之下,两者都是
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 />
,则需要正则表达式。
答案 1 :(得分:0)
谢谢大家的帮助。
body = Replace(body,"<BR>", "<br>")
虽然我从你的帖子中学到了很多东西。这是实际修复我的问题的代码。如果我没有更好地传达它,我很抱歉。