Как заменить весь текст строки во время выполнения в ASP - PullRequest
0 голосов
/ 08 сентября 2011

У меня ниже ASP-код.

<%
Dim body
body = "<h3>Arabian Test Adventures Tours &amp; Safaris</h3>" 
body = body &       "<table class=""dataTable"" cellspacing=""0"" cellpadding=""0"" width=""100%"">"
body = body &           "<tbody>"
body = body &               "<tr>"
body = body &                   "<th width=""40%"">Tour</th>"
body = body &                   "<th>Days</th>"
body = body &                   "<th>Adult*</th>"
body = body &                   "<th>Child*</th>"
body = body &                   "<th width=""20%"">AM/PM**</th>"
body = body &               "</tr>"
body = body &               "<tr>"
body = body &                   "<td><a title=""Dubai City Tour"" href=""tcm:232-203762""><strong>City of Merchants</strong></a>***"
body = body &   "<br/>"
body = body &   "Dubai City Tour</td>"
body = body &                   "<td>Daily</td>"
body = body &                   "<td><span class=""convert"">USD 50</span>@</td>"
body = body &                   "<td><span class=""convert"">USD 999</span>@</td>"
body = body &                   "<td>AM &amp; PM</td>"
body = body &               "</tr>"
body = body &           "</tbody>"
body = body &       "</table>"
Response.Write body
    'Do While InStr(body, "<span class=""convert""") > 0
        body = left(body, InStr(body, "<span class=""convert"">")-1) & right(body, len(body) - InStr(body, "</span>@")-7)
    'Loop
Response.Write body
%>

В приведенном выше коде ASP я должен проверять каждый SPAN , имеющий class = "" convert "" , и заменяет все <span class=""convert"">USD 50</span>@ на USD 50 так в приведенном выше коде мои оба

"<td><span class=""convert"">USD 50</span>@</td>"
"<td><span class=""convert"">USD 999</span>@</td>" 

будет заменено, как показано ниже

"<td>USD 50</td>"
"<td>USD 999</td>"

Я пытаюсь сделать что-то выше, используя приведенную ниже концепцию кода, но не могу этого сделать

'Do While InStr(body, "<span class=""convert""") > 0
        body = left(body, InStr(body, "<span class=""convert"">")-1) & right(body, len(body) - InStr(body, "</span>@")-7)
    'Loop

Пожалуйста, предложите

1 Ответ

2 голосов
/ 09 сентября 2011

Привет. Когда вам нужно выполнить сложную обработку строк, вы должны использовать Regex. Это эффективнее и проще.
, например

Dim oReg, body
body = "your body content"
Set oReg = New RegExp
oReg.IgnoreCase = True
oReg.Global = True
oReg.Pattern = "<span class=""convert"">(USD \d+)</span>@"
body = oReg.Replace(body, "$1")
Response.Write body
Set oReg = Nothing
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...