经典的asp替换内部预标签

时间:2013-03-20 09:00:46

标签: asp-classic vbscript

我喜欢以下来自html表格的文字。现在我想将它保存到db中。在保存之前,我需要解析替换为<BR />标记的换行符。

我只需要替换<pre>标记之外的文字,并将文字保留在<pre></pre>标记内。

这就是我目前所拥有的:

 strTxt="aaaaaaaaaaaa
    bbbbbbbbbbb
     <pre>
      sss ssss
      sss ddd
     </pre>
    asdafdsf
    sfsfsdf
     <pre>
      sfdsf
      sdfs
     </pre>
    asfasfsaf"

我希望结果是:

strTxt="aaaaaaaaaaaa<br />
    bbbbbbbbbbb<br />
     <pre>
      sss ssss
      sss ddd
     </pre>
    asdafdsf<br />
    sfsfsdf<br />
     <pre>
      sfdsf
      sdfs
     </pre>
    asfasfsaf"

2 个答案:

答案 0 :(得分:1)

通常,在操作HTML等结构化文本时不应使用字符串操作,但<pre>是一种特殊的 - 而不是嵌套的 - 大小写。所以你可以逃脱:

Function BrNonPre(sAll)
  Dim csDelim : csDelim = "pre>" & vbCrLf
  Dim aAll    : aAll    = Split(sAll, csDelim)
  Dim i
  For i = 0 To UBound(aAll) Step 2
      aAll(i) = Replace(aAll(i), vbCrLf, "<br />" & vbCrLf)
  Next
  BrNonPre = Join(aAll, csDelim)
End Function

示例输出:

=======================
aaaaaaaaaaaa
bbbbbbbbbbb
<pre>
  sss ssss
  sss ddd
</pre>
asdafdsf
sfsfsdf
<pre>
  sfdsf
  sdfs
</pre>
asfasfsaf
----------
aaaaaaaaaaaa<br />
bbbbbbbbbbb<br />
<pre>
  sss ssss
  sss ddd
</pre>
asdafdsf<br />
sfsfsdf<br />
<pre>
  sfdsf
  sdfs
</pre>
asfasfsaf
=======================

答案 1 :(得分:0)

你可以像

那样硬编码
 <%
 dim strTxt
 strTxt="aaaaaaaaaaaa<br />" & vbCrLf
 strTxt=strTxt & "bbbbbbbbbbb" & vbCrLf
 strTxt=strTxt & "<pre>" & vbCrLf
 strTxt=strTxt & "sss ssss" & vbCrLf
 strTxt=strTxt & "sss ddd" & vbCrLf
 strTxt=strTxt & "</pre>" & vbCrLf
 strTxt=strTxt & "asdafdsf<br />" & vbCrLf
 strTxt=strTxt & "sfsfsdf" & vbCrLf
 strTxt=strTxt & "<pre>" & vbCrLf
 strTxt=strTxt & "sfdsf" & vbCrLf
 strTxt=strTxt & "sdfs" & vbCrLf
 strTxt=strTxt & "</pre>" & vbCrLf
 strTxt=strTxt & "asfasfsaf"

 Response.Write(strTxt)
 %>