[ASP] bepaalde HTML tags toestaan met deze functie

Pagina: 1
Acties:

  • muis|IA
  • Registratie: Oktober 2001
  • Laatst online: 18-11-2022
Ik heb hier de volgende code, ik snap niet waarom toch alle tags worden doorgelaten, iemand een idee wat ik fout doe?


---------------------------------
MyArray(0) = "B"
MyArray(1) = "I"
MyArray(2) = "U"
MyArray(3) = "FONT"

verhaal = request.form("veld")

Set re = new RegExp
re.IgnoreCase = True
re.pattern = "(<(\w+)>.*?<\/\w+>)"
Set oMatches = Re.Execute(verhaal)
Set oMatch = oMatches(0)

verhaal = re.replace(verhaal, tagcheck(oMatch.SubMatches(1), oMatch.SubMatches(0)))


function tagcheck(deTag, text)
inArray = "false"

For Each key In MyArray
if key = deTag then
inArray = "true"
end if
next

if inArray = "true" then
tagcheck = text
else
tagcheck = ""
end if
end function
---------------------------------

Een vergissing is menselijk maar om er een puinhoop van te maken heb je een computer nodig (met mij erachter)


  • muis|IA
  • Registratie: Oktober 2001
  • Laatst online: 18-11-2022
iemand?

Een vergissing is menselijk maar om er een puinhoop van te maken heb je een computer nodig (met mij erachter)


  • muis|IA
  • Registratie: Oktober 2001
  • Laatst online: 18-11-2022
echt niemand idtje? :?

Een vergissing is menselijk maar om er een puinhoop van te maken heb je een computer nodig (met mij erachter)


  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
't Is een beetje een chaos. :/

Kan je niet beter een functie schrijven die de tags vervangt die toegestaan zijn, ipv eentje die kijkt of de tag mag en zo ja dan vervangen?

  • rambo-2001
  • Registratie: November 2000
  • Laatst online: 02-01-2024

rambo-2001

be anonymous

jouw asp code is niet erg duidelijk maar misschien toch maar met replace gaan werken ?
volgens mij doet het got dit ook door [] te vervangen door <>

cs skill - making a desert eagle out of tooth picks


Verwijderd

Ik ben niet zo super thuis in VB regexen (beetje vaag, met match en matches en submatches).
re.pattern = "(<(\w+)>.*?<\/\w+>)"
Je hebt twee haakje-niveaus en de .*? snap ik niet. Optioneel ? nul of meer * tekens . ????

Maar wat je wilt: bepaalde HTML tags toestaan. Ik zou het volgende algoritme gebruiken:
-Vervang de vleeshaken van alle niet-toegestane HTML tags door < en >. In javascript zou het zoiets zijn:
code:
1
replace(/<(\/?[^ibuf][^>]*)>/ig,'&lt;$1&gt;')

Deze functie is niet 100% perfect. <form> mag nog steeds. RegEx van javascript en vbscript zijn helaas beperkt (wat jij wilt, kan overigens wel met regex in vbscript).
Pagina: 1