Frågan 9 mars 2008 21:41 #1 Hejsan.
Jag har läst lite arliklar om regexp nu och sökt lite i forumet.
Det är några tecken jag vill att man ska kunna använda i mitt nyhetsscript.
Men jag har fastnat totalt i koden nu.
Detta är allt jag har fått fram, men vad jag har förstått så måste det finnas mer saker för att den ska fungera.
Något i stil med function i början utav koden.
With New RegExp
.Global = True
.IgnoreCase = True
.Pattern = "\[i\]([\w\W]*?)\[/i\]"
strValue = .Replace(strValue,"<i>$1</i>")
.Pattern = "\[u\]([\w\W]*?)\[/u\]"
strValue = .Replace(strValue,"<u>$1</u>")
.Pattern = "\[img\]([\w\W]*?)\[/img\]"
strValue = .Replace(strValue,"<img src="$1">")
.Pattern = "\[red\]([\w\W]*?)\[/red\]"
strValue = .Replace(strValue,"<font color="FF0000">$1</font>")
End With
Någon som kan hälpa mig att vidar utveckla koden.
Och gärna förklara hur jag ska använda den ihop med denna lilla kod snutt.
<%=objRS("värde")%>
With New RegExp
strValue = replace(strValue,"<", "<")
strValue = replace(strValue,">", ">")
.Global = True
.IgnoreCase = True
.Pattern = "\[i\]([\w\W]*?)\[/i\]"
strValue = .Replace(strValue,"<i>$1</i>")
.Pattern = "\[u\]([\w\W]*?)\[/u\]"
strValue = .Replace(strValue,"<u>$1</u>")
.Pattern = "\[img\]([\w\W]*?)\[/img\]"
strValue = .Replace(strValue,"<img src="$1">")
.Pattern = "\[red\]([\w\W]*?)\[/red\]"
strValue = .Replace(strValue,"<font color="FF0000">$1</font>")
End With
borde räcka (ej RegExp)... eller vill du plocka bort alla html taggar innan du kör dom andra scripten?eller vill du tillåta vanliga html taggar (som du själv bestämmer?)
red. Missförstod dig
Function MakeHTML(strValue)
With New RegExp
.Global = True
.IgnoreCase = True
.Pattern = "\[i\]([\w\W]*?)\[/i\]"
strValue = .Replace(strValue,"<i>$1</i>")
.Pattern = "\[u\]([\w\W]*?)\[/u\]"
strValue = .Replace(strValue,"<u>$1</u>")
.Pattern = "\[img\]([\w\W]*?)\[/img\]"
strValue = .Replace(strValue,"<img src="$1">")
.Pattern = "\[red\]([\w\W]*?)\[/red\]"
strValue = .Replace(strValue,"<font color="FF0000">$1</font>")
End With
MakeHTML = strValue
End Function
Response.Write MakeHTML(Recset("something"))
/red
Så här skriver jag istället.
Så denna koden fungerar då och gör även så att man inte kan använda några andra html uttryck?
Och då även så att det blir automatiskt radbryte? (Ändrade lite i koden)
Function MakeHTML(strValue)
With New RegExp
strValue = replace(strValue,"<", "<")
strValue = replace(strValue,">", ">")
strValue = replace(str, vbCrLf, "<br>")
.Global = True
.IgnoreCase = True
.Pattern = "\[i\]([\w\W]*?)\[/i\]"
strValue = .Replace(strValue,"<i>$1</i>")
.Pattern = "\[u\]([\w\W]*?)\[/u\]"
strValue = .Replace(strValue,"<u>$1</u>")
.Pattern = "\[img\]([\w\W]*?)\[/img\]"
strValue = .Replace(strValue,"<img src="$1">")
.Pattern = "\[red\]([\w\W]*?)\[/red\]"
strValue = .Replace(strValue,"<font color="FF0000">$1</font>")
End With
MakeHTML = strValue
End Function
Response.Write MakeHTML(Recset("something"))
ja om du vill ersätta alla <html> taggar till "inget" så får du göra ett RegExp uttryck för det. dvs:
"<b>hej</b>" på dig blir "hej på dig":
Högst upp efter With
.Pattern = "</?[^>]+>"
strValue = .Replace(strValue,"")
Okej.
Nu får jag detta felet
Körningsfel i Microsoft VBScript fel '800a005e'
Ogiltig användning av Null: 'replace'
Och raden det är fel på ser ut så här.
strValue = replace(strValue,"<", "<")
Jag testade tabort den raden innan men då skriver den inte ut något ifrån den kolumnen jag valt.
Jag skriver ut allt igenom denna koden
<%=MakeHTML(objRS("news"))%>
För ditt ObjRs innehåller ingen data:
<%=MakeHTML(objRS("news") & "")%>
Opps, gjorde en miss där!
Men nu innehåller det data men skriver inte ut något endå!
/red
Skriver jag ut det vanligt utan att använda Replace så skriver det ut data.
du skriver fel:
strValue = replace(str, vbCrLf, "<br>")
str finns inte = tomt:
strValue = replace([b]strValue[/b], vbCrLf, "<br>")
Ajdå!
Vad mycket missar.
Men nu verkar allt stämma.
men om jag skriver så visar den ingenting utav det, verkar som den hoppar över
för det första så förstår jag inte hur din funktion klara sig:
.Pattern = "\[img\]([\w\W]*?)\[/img\]"
strValue = .Replace(strValue,"<img src="$1">")
Den koden borde inte fungera:
.Pattern = "\[img\]([\w\W]*?)\[/img\]"
strValue = .Replace(strValue,"<img src=""$1"">")
voigtann1 skrev:
för det första så förstår jag inte hur din funktion klara sig:
.Pattern = "\[img\]([\w\W]*?)\[/img\]"
strValue = .Replace(strValue,"<img src="$1">")
Den koden borde inte fungera:
.Pattern = "\[img\]([\w\W]*?)\[/img\]"
strValue = .Replace(strValue,"<img src=""$1"">")
Jag hade inte skrivit med "" utan med '' så därför den funderade förmodligen.
Men den du skrev nu gör ingen skillnad.
Visa källa och se vad som händer vad skickar du in till funktionen och vad skrivs ut från funktionen?
voigtann1 skrev:
Visa källa och se vad som händer vad skickar du in till funktionen och vad skrivs ut från funktionen?
Hur menar du nu?
Att ja ska visa källan i typ IE eller FF och kolla om koden skrivs ut ?
Är lite lost nu!
Ja.. Visa källa för att se vad som skrivs ut.
Jag testade: asdas och det fungerade för mig:
Function MakeHTML(strValue)
strValue = replace(strValue,"<", "<")
strValue = replace(strValue,">", ">")
strValue = replace(strValue, vbCrLf, "<br>")
With New RegExp
.Global = True
.IgnoreCase = True
.Pattern = "\[i\]([\w\W]*?)\[/i\]"
strValue = .Replace(strValue,"<i>$1</i>")
.Pattern = "\[u\]([\w\W]*?)\[/u\]"
strValue = .Replace(strValue,"<u>$1</u>")
.Pattern = "\[img\]([\w\W]*?)\[/img\]"
strValue = .Replace(strValue,"<img src=""$1"">")
.Pattern = "\[red\]([\w\W]*?)\[/red\]"
strValue = .Replace(strValue,"<font color=""#FF0000"">$1</font>")
End With
MakeHTML = strValue
End Function
Response.Write MakeHTML("asdas[img]http://www.webforum.nu/images/wfstandard/logo_webforum.gif[/img]")
Nu funkar det för mig.
Dock visar han inte bilden men den finns med i källkoden så nu är det bara någon liten finjustering som behövs!
Tack för hjälpen!
vad blir fel? Hur ser texten ut innan funktionen körs och hur ser texten ut efter att funktionen har körts?
voigtann1 skrev:
vad blir fel? Hur ser texten ut innan funktionen körs och hur ser texten ut efter att funktionen har körts?
Det funkade sen. Startade om FF sen laddade den bilden riktigt.
Tack för hjälpen!