-2

我喜欢以下从 html 表单获取的文本。现在我想将它保存到数据库中。在保存之前,我需要解析换行符替换<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"
4

2 回答 2

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
=======================
于 2013-03-20T15:05:50.357 回答
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)
 %>
于 2013-03-20T09:41:33.010 回答