Filter bepaalde html tags (javascript?)

Pagina: 1
Acties:

  • enzoronald
  • Registratie: Augustus 2003
  • Laatst online: 30-10 15:15
Ik ben bezig met een aantal templates waar automatisch vanuit een templatesysteem tekst word in geplaatst (in de template zal bijvoorbeeld een veld [naam] heten en dit zal uitgelezen worden uit een database en getoond worden)

Nu zal het mogelijk zijn dat hier ook html tags bijzitten (bij de uitgelezen velden). Ik wil een aantal html tags (dynamisch) uitsluiten.
Ik wil bijvoorbeeld dat tags zoals <b>, <ul>, <u>, <i> wel toegestaan worden. De rest moet dus eigenlijk gefilterd worden.
Is het mogelijk om dit via javascript oid te filteren ?

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Javascript, vbscript, asp, php, server side HTML.... er is van alles mogelijk, maar zonder 1 regel code van jou wordt het wel heel lastig uit te leggen wat je precies wilt, wat je hebt geprobeerd en waar het precies misgaat :)

Kom zelf eens met een mogelijke opzet en waar je precies op vastloopt :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • DukeBox
  • Registratie: April 2000
  • Laatst online: 18:54

DukeBox

loves wheat smoothies

Je kan geweoon regular expressions gebruiken met bijv. replace(all).
b.t.w. niet echt iets dat google niet voor je zou kunnen vinden emt 'string, replace, javascript'

[ Voor 49% gewijzigd door DukeBox op 16-06-2008 20:52 ]

Duct tape can't fix stupid, but it can muffle the sound.


  • enzoronald
  • Registratie: Augustus 2003
  • Laatst online: 30-10 15:15
Ik heb al behoorlijk gezocht op google en ook echt wel wat dingen gevonden, zoals :
function removeHTMLTags(){
if(document.getElementById && document.getElementById("input-code")){
var strInputCode = document.getElementById("input-code").innerHTML;
/*
This line is optional, it replaces escaped brackets with real ones,
i.e. < is replaced with < and > is replaced with >
*/
strInputCode = strInputCode.replace(/&(lt|gt);/g, function (strMatch, p1){
return (p1 == "lt")? "<" : ">";
});
var strTagStrippedText = strInputCode.replace(/<\/?[^>]+(>|$)/g, "");
alert("Input code:\n" + strInputCode + "\n\nOutput text:\n" + strTagStrippedText);
}
}
Maar ik moet eerlijk zeggen dat de templates maken (css + html) voor mij prima te doen is. Ik vind het javascript aanpassen/coderen altijd behoorlijk lastig. Het is ook niet iets wat ik normaal gesproken nodig heb. Eigenlijk alleen deze keer. Ben ik met bovenstaande code al goed op weg ?

  • DukeBox
  • Registratie: April 2000
  • Laatst online: 18:54

DukeBox

loves wheat smoothies

Kun je het niet serverside oplossen via een parser o.i.d. ?

Duct tape can't fix stupid, but it can muffle the sound.


  • webinn
  • Registratie: Oktober 2002
  • Laatst online: 06-06 12:44
ik zou toch echt server-side werken en dan iets doen zoals een UBB parser

http://www.google.be/sear...official&client=firefox-a

(maar dan aanpassen aan je eigen eisen)

  • DukeBox
  • Registratie: April 2000
  • Laatst online: 18:54

DukeBox

loves wheat smoothies

^ dat bedoelde ik ook.. of triptags met een exclusion voor <b>, <ul>, <u>, <i>.

Duct tape can't fix stupid, but it can muffle the sound.


  • enzoronald
  • Registratie: Augustus 2003
  • Laatst online: 30-10 15:15
het zal niet mogelijk zijn om het server-side te doen in eerste instantie. Het idee is om het eerst met javascript te doen.

  • Bozozo
  • Registratie: Januari 2005
  • Laatst online: 20-02 16:10

Bozozo

Your ad here?

Met javascript filteren is onzinnig, omdat je nooit kunt vertrouwen op informatie die naar de server wordt gestuurd. Je kunt javascript invoercontrole hoogstens toepassen om het gebruiksgemak te vergroten ('u bent vergeten uw naam in te vullen') of als extra filterstap ('uw naam bevat ongeldige karakters'), maar je moet altijd ook serverside de data opschonen.

Als je de informatie niet naar de server stuurt (begrijp ik niet helemaal uit de openingspost) dan kan het filteren natuurlijk wel met JavaScript, maar dan zie ik het nut er weer niet van in.

TabCinema : NiftySplit


  • BramT
  • Registratie: Oktober 2001
  • Laatst online: 00:58

BramT

Rule #1

Bozozo schreef op maandag 16 juni 2008 @ 22:17:
Met javascript filteren is onzinnig, omdat je nooit kunt vertrouwen op informatie die naar de server wordt gestuurd.
What he said.

Wat je hier probeert te doen moet je gewoon niet willen. Ook al ben je de enige gebruiker, dit gaat je op korte of lange termijn ernstig hoofdpijn geven.

En als je toch moet: een reguliere expressie doet het zo voor je (voel je de hoofdpijn al komen? ;)).

You are the all-dancing, all-singing crap of the world - Jack


  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

[google=do not use regular expressions to parse html]

Stop uploading passwords to Github!


Verwijderd

Zoals Bozozo zegt zou ik een filter in JS maken die aangeeft wat wel en niet mag om het gebruiksgemak te verhogen en de uiteindelijke feitelijke controle serverside uitvoeren.

  • moozzuzz
  • Registratie: Januari 2005
  • Niet online
Bozozo schreef op maandag 16 juni 2008 @ 22:17:
Met javascript filteren is onzinnig, omdat je nooit kunt vertrouwen op informatie die naar de server wordt gestuurd.
Ik veronderstel dat de input van de server komt via AJAX (buzzbuzz) of wordt de pagina dynamisch opgebouwd via javascript? Of wil je een pagina na het laden opnieuw "verbeteren"?

In alle gevallen los je het best op serverside, maar clientside *kan* natuurlijk...

  • enzoronald
  • Registratie: Augustus 2003
  • Laatst online: 30-10 15:15
moozzuzz schreef op dinsdag 17 juni 2008 @ 13:49:
[...]
Ik veronderstel dat de input van de server komt via AJAX (buzzbuzz) of wordt de pagina dynamisch opgebouwd via javascript? Of wil je een pagina na het laden opnieuw "verbeteren"?

In alle gevallen los je het best op serverside, maar clientside *kan* natuurlijk...
Ik wil die laatste optie (het "verbeteren" van de pagina na het laden) en dan het liefst clientside (javascript?). De server draait trouwens op Perl. Ik heb geen idee hoe ik het voor elkaar...

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Dit moet je gewoon altijd (ook) op de server doen, punt uit.

{signature}

Pagina: 1