Avatar billede Slettet bruger
02. september 2002 - 20:06 Der er 5 kommentarer og
1 løsning

Replace funktion

Hejsa -

jeg søger en replace- eller slice-funktion der kan markere tekst inden for 2 anførselstegn, dog de ikke er omklammet af <> symbolerne.

Eksempel:
<font face="arial" color="#000000">dette er en tekst "Dette skal markeres" teksten fortsætter her</font>

Det genereres til:
<font face="arial" color="#000000">dette er en tekst "<i>Dette skal markeres</i>" teksten fortsætter her</font>

Er der nogen der har et bud ??
Avatar billede easysoft_studios Nybegynder
02. september 2002 - 20:13 #1
Replace(rs("dbkolone")&"", """", "<i>"), men den dur jo ikke rigtig i dit tilfælde...
Avatar billede eagleeye Praktikant
02. september 2002 - 23:20 #2
Her er da et bud, det er en større omgang da man skal holde styr på hvornår <i> starter og hvor den sluter da det er samme karakter som bruges ":


<%
str = "<font face=""arial"" color=""#000000"">dette er en tekst ""Dette skal markeres"" teksten fortsætter her</font>"

iStart = InStr(1,str,">")
do while iStart > 0
  iSlut = InStr(iStart,str,"<")
  if iSlut > 0 then
    strRpl = mid(str,iStart+1, iSlut - iStart - 1)
    DO
      startPos = Instr(1,strRpl,"""",1)
      slutPos = InStr (Cint(startPos)+1,strRpl,"""",1) 
      If (startPos > 0) and (slutPos > 0) then
        strRpl = Replace(strRpl,"""","[<i>",1,1,0)
        strRpl = Replace(strRpl,"""","</i>]",1,1,0)
      end if
    LOOP WHILE (startPos > 0) and (slutPos > 0)   
    strRpl = Replace(strRpl,"[<i>","""<i>")
    strRpl = Replace(strRpl,"</i>]","</i>""")
    str = Left(str,iStart) & strRpl & Mid(str,iSlut)
  end if
  if iSlut = 0 then exit do
  iStart = InStr(iSlut+1,str,">")
loop


Response.Write str
%>
Avatar billede Slettet bruger
03. september 2002 - 17:00 #3
Lækkert :)

Jeg syntes dog at det sløver min side en del - om det er serveren eller scriptet der er ustabilt ved jeg dog ikke ...?

Men jeg tænkte om det kunne skrives som regular expressions ala denne link-tjekker;

Function LinkString(strInput)
        arrPattern = Array("([\w\._-]+@[\w\._-]+\.[A-Za-z]{2,4}\S*)", _
        "(http|https|ftp)(:\/\/[\w\._-]+\.[\w\._-]+\S*)")

        arrReplaceString = Array(" <a href='mailto:$1'><img src='img/getemail_small.gif' title='$1' border='0' vspace='2'></a> ", _
        " <a href='$1$2' target='_blank'><img src='img/getwww_small.gif' title='$1$2' border='0' vspace='2'></a> ", _
        " <a href='http://$2' target='_blank'><img src='img/getwww_small.gif' title='$2' border='0' vspace='2'></a> ")

        Set Rx = New RegExp
        Rx.Global = True
        Rx.IgnoreCase = True

        For intIndex = 0 To UBound(arrPattern)
            Rx.Pattern = arrPattern(intIndex)
            strInput = Rx.Replace(strInput, arrReplaceString(intIndex))
        Next
        Set Rx = Nothing
        LinkString = strInput
    End Function

Ellers er det ok :)
Takker for hjælpen....
Avatar billede Slettet bruger
03. september 2002 - 18:27 #4
eagleeye -> Jeg tror sq´ den bliver for tung i mit script loop i loop osv.
Kan du lave den uden at den tjekker for <>
Avatar billede eagleeye Praktikant
03. september 2002 - 18:32 #5
hvis det skal være uden < > så bliver det noget med:

str = "dette er en tekst ""Dette skal markeres"" teksten fortsætter her"


    strRpl = str
    DO
      startPos = Instr(1,strRpl,"""",1)
      slutPos = InStr (Cint(startPos)+1,strRpl,"""",1) 
      If (startPos > 0) and (slutPos > 0) then
        strRpl = Replace(strRpl,"""","[<i>",1,1,0)
        strRpl = Replace(strRpl,"""","</i>]",1,1,0)
      end if
    LOOP WHILE (startPos > 0) and (slutPos > 0)   
    strRpl = Replace(strRpl,"[<i>","""<i>")
    strRpl = Replace(strRpl,"</i>]","</i>""")
    str = strRpl


Response.write str
Avatar billede Slettet bruger
03. september 2002 - 19:19 #6
Det hjalp - mange tak :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester