AsaMedlem sedan dec. 20011 934 inlägg
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)
%>
AsaMedlem sedan dec. 20011 934 inlägg
Jag la till denna rad i loopen :)
objRegExp.Pattern = "<(" & vAllowedHTML(i) & ")>"
sStr = objRegExp.Replace(sStr, "<$1>")
Då funkade det :)
AsaMedlem sedan dec. 20011 934 inlägg
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.)
GuffaMedlem sedan juni 2004533 inlägg
Du saknar den fjärde varianten. Du har:
<x>...</x>
<x...>...</x>
<x>
Men du saknar:
<x...>
AsaMedlem sedan dec. 20011 934 inlägg
Jaa, men hur skriver man den tro??
voigtann1Medlem sedan juni 20018 810 inlägg
Ska både VIP och vanliga användare kunna användar IMG
AsaMedlem sedan dec. 20011 934 inlägg
Jepp, det skall dom kunna! Så har jag iallafall idag!
SannyWMedlem sedan jan. 2003447 inlägg
Lägg till denna:
objRegExp.Pattern = "<(" & vAllowedHTML(i) & ".*?)>"
sStr = objRegExp.Replace(sStr, "<$1>")
AsaMedlem sedan dec. 20011 934 inlägg
Tackar för det. Funkade fint :)
AsaMedlem sedan dec. 20011 934 inlägg
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
AsaMedlem sedan dec. 20011 934 inlägg
Men man verkar inte kunna använda " taggen! Nån som vet varför?
GuffaMedlem sedan juni 2004533 inlägg
Asa skrev:
" taggen
Vad menar du?
Vad du nu är, varför verkar det så? Symptom? Får du något felmeddelande?
AsaMedlem sedan dec. 20011 934 inlägg
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å.
GuffaMedlem sedan juni 2004533 inlägg
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.
AsaMedlem sedan dec. 20011 934 inlägg
Okej, skall se om jag kan fixa det. Tackar för svaret.
MelittaMedlem sedan sep. 2003577 inlägg
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;
AsaMedlem sedan dec. 20011 934 inlägg
AsaMedlem sedan dec. 20011 934 inlägg
Man fick lägga replacekoden vid denna:
FixedCode = replace(sStr,""","""")
Då funkade det fint