Avatar billede robson Nybegynder
17. november 2004 - 12:39 Der er 7 kommentarer og
1 løsning

Strip HTML - bevar linieskift

Jeg har fundet en Javascript funktion der stripper en tekst for HTML kode. Funktionen ses her:

function StripHTML(){
  var strText = document.all.myText.innerHTML;
  var re= /<\S[^>]*>/g;
  strText = strText.replace(re,"");
  document.all.myText.innerHTML = strText;
}

Dette virker OK... men jeg ønsker at bevare mine linieskift.

Har du en god ide til en måde at udvide koden på således at dette kan lade sig gøre?
Avatar billede Slettet bruger
17. november 2004 - 12:41 #1
Ligger de som <br> tags i strText?
Avatar billede robson Nybegynder
17. november 2004 - 12:53 #2
Det kan de gøre, men også som <p></p> og endda som <p class=nogether></p>
Avatar billede robson Nybegynder
17. november 2004 - 13:14 #3
jeg har vist været lidt fedtet med points - en løsning udløser 100 ekstra points!
Avatar billede robson Nybegynder
17. november 2004 - 15:43 #4
jeg har lavet en midlertidig løsning, der finder alle </p> og <br> og erstatter med en midlertidig streng - derefter fjerner jeg alle HTML tags og til sidst erstatter jeg den midlertidige streng med <BR>


function StripHTML(){
  var strText = document.all.myEditor.innerHTML;
       
  var strTemp = /<\/p>|<br>/gi;
  strText = strText.replace(temp,"#linieskift#");

  var strTag = /<\S[^>]*>/g; // alternativ reg.ex. /(<([^>]+)>)/ig
  strText = strText.replace(strTag,"");
       
  var strTemp2 = /\#linieskift\#/gi;
  strText = strText.replace(strTemp2,"<br>");
       
  document.all.myEditor.innerHTML = "<P>" + strText + "</P>";
}

er der andre derude der har bedre forslag??
Avatar billede roenving Novice
24. december 2004 - 22:51 #5
Det kan faktisk nok ikke principielt gøres på andre måder, men jeg ville dog holde fast i den korrekte html og lave to forskellige midlertidige variable ...

-- og det er vel tid at lukke spørgsmålet ?-)
Avatar billede robson Nybegynder
27. december 2004 - 08:30 #6
er det noget du kunne tænke dig at uddybe?? evt. med et svar så jeg kan lukke spørgsmålet...  ;)
Avatar billede roenving Novice
27. december 2004 - 14:31 #7
-- undskyld, jeg så fejlagtigt bare på, at du kun udskiftede lukke-tagget for afsnit, men du fjerner jo alle tags, der er tilbage bagefter, så det er ikke noget problem !-)

-- og du kan jo sagtens tillade dig at tage dine point igen !o]

-- forøvrigt kan din regex til fjernelse af tags vel nøjes med at være:

/<[^>]+>/g ...
Avatar billede robson Nybegynder
27. december 2004 - 14:41 #8
roenving --> tak for din kommentar! Jeg er ikke skarp til disse reg.exp. så jeg vil lige teste med dit forslag!

Jeg lukker spørgsmålet!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester