Jag la till denna rad i loopen :)
objRegExp.Pattern = "<(" & vAllowedHTML(i) & ")>"
sStr = objRegExp.Replace(sStr, "<$1>")
Då funkade det :)
17 svar · 533 visningar · startad av Asa
Varför funkar ej denna så att <br> gör en radbrytning samt varför <hr> inte blir en linje? En till rad i loopen behövs va? Och hur skriver man den??
<%
strVippis = 1
Function BlockUnAllowedHTML(ByVal sStr)
Dim vAllowedHTML, i, objRegExp
'Om användare är VIP
if strVIPPIS = 1 Then
vAllowedHTML = Array("b","u","br","fieldset","legend","hr","strong","code","font","span")
else
vAllowedHTML = Array("b","u","br")
end if
sStr = Server.HTMLEncode(sStr & "")
Set objRegExp = New RegExp
objRegExp.IgnoreCase = True
objRegExp.Global = True
For i = 0 To UBound(vAllowedHTML)
objRegExp.Pattern = "<(" & vAllowedHTML(i) & ")>([\s\S]*?)</(" & vAllowedHTML(i) & ")>"
sStr = objRegExp.Replace(sStr, "<$1>$2</$3>")
objRegExp.Pattern = "<(" & vAllowedHTML(i) & ".*?)>([\s\S]*?)</(" & vAllowedHTML(i) & ")>"
sStr = objRegExp.Replace(sStr, "<$1>$2</$3>")
Next 'i
Set objRegExp = Nothing
BlockUnAllowedHTML = sStr
End Function
str = "Hej <font face=verdana size=1>HEJ</font><br>Hejsan"
Response.write BlockUnAllowedHTML(str)
%>
Jag la till denna rad i loopen :)
objRegExp.Pattern = "<(" & vAllowedHTML(i) & ")>"
sStr = objRegExp.Replace(sStr, "<$1>")
Då funkade det :)
Men img koden fungerar inte. Om jag lägger </img> gör den det.
Sen vill jag att man skall kunna skriva " i koden utan felmeddelanden. (Funkar om man hämtar från databas.)
Jaa, men hur skriver man den tro??
Ska både VIP och vanliga användare kunna användar IMG
Jepp, det skall dom kunna! Så har jag iallafall idag!
Lägg till denna:
objRegExp.Pattern = "<(" & vAllowedHTML(i) & ".*?)>"
sStr = objRegExp.Replace(sStr, "<$1>")
Tackar för det. Funkade fint :)
Hela koden:
Function FixedCode(ByVal sStr,strVippis)
Dim vAllowedHTML, i, objRegExp
'Om användare är VIP
if strVippis = 1 Then
vAllowedHTML = Array("b","u","i","br","fieldset","legend","hr","strong","fo nt","span","a","div","img","h1","h2","h3","h4","big","table" ,"tr","td")
else
vAllowedHTML = Array("b","u","i","br","hr","font","a","img","h1","h2","h3", "h4","big")
end if
sStr = Server.HTMLEncode(sStr & "")
sStr = Replace(sStr,vbCrLf, "<br>")
Set objRegExp = New RegExp
objRegExp.IgnoreCase = True
objRegExp.Global = True
For i = 0 To UBound(vAllowedHTML)
objRegExp.Pattern = "<(" & vAllowedHTML(i) & ")>([\s\S]*?)</(" & vAllowedHTML(i) & ")>"
sStr = objRegExp.Replace(sStr, "<$1>$2</$3>")
objRegExp.Pattern = "<(" & vAllowedHTML(i) & ".*?)>([\s\S]*?)</(" & vAllowedHTML(i) & ")>"
sStr = objRegExp.Replace(sStr, "<$1>$2</$3>")
objRegExp.Pattern = "<(" & vAllowedHTML(i) & ")>"
sStr = objRegExp.Replace(sStr, "<$1>")
objRegExp.Pattern = "<(" & vAllowedHTML(i) & ".*?)>"
sStr = objRegExp.Replace(sStr, "<$1>")
Next 'i
Set objRegExp = Nothing
FixedCode = sStr
End Function
Men man verkar inte kunna använda " taggen! Nån som vet varför?
Asa skrev:
" taggen
Vad menar du?
Vad du nu är, varför verkar det så? Symptom? Får du något felmeddelande?
När man skriver ex en länk så här <a href="http://www.sidan2.se">TEST</a> så blir inte länken rätt utan det blir ex http://www.sidan.se/"http://www.sidan2.se"
Sen vid ex font color så blir det fel färg. Skriver jag <font color="red"> visas den som grön. Utan " taggarna funkar det utan problem.
Vill att det skall funka vilket sätt man än skriver på.
Aha. Det beror på att citattecknen är html-kodade till ". Koden du får ut blir alltså:
<a href="http://www.sidan2.se&quot;>TEST</a>
Du får konvertera tillbaka även det som matchas av den första parentesen.
Okej, skall se om jag kan fixa det. Tackar för svaret.
Asa skrev:
Okej, skall se om jag kan fixa det. Tackar för svaret.
Om du nu inte fått stil på det så kan du byta:
sStr = objRegExp.Replace(sStr, "<$1>$2</$3>")
mot
sStr = replace(objRegExp.Replace(sStr,"<$1>$2</$1>"),"& quot;","""")
Tror att det ska fungera. ta bort mellanrummet mellan & qout;
Tackar, skall testa!