14. september 2004 - 16:01
Der er
5 kommentarer og 1 løsning
Fjern alle HTML tag, på nær nogle få
Jeg vil gerne fjerne alle HTML tags på nær disse: </H1> </H2> </H3> </H4> </P> </TD> </DIV> Jeg fjerne HTML med dette pattern: "<[^>]*>" - men det tager jo alt HTML
Annonceindlæg fra Deloitte
14. september 2004 - 16:38
#1
Jeg tror du først må erstatte dem, du vil beholde, fjerne de øvrige og så retablere dem: (javascript-style) txt = "din html-kilde"; txt.replace(/<(\/?(h1|h2|h3|h4|p|td|div)[^>])>/ig, "[$1]"); txt.replace(/<[^>]*>/g,""); txt.replace(/\[(\/?(h1|h2|h3|h4|p|td|div)[^\]])\]/ig, "<$1>"); -- hvis du f.eks. gør det i vbscript skal du jo så ikke bruge // og i og g skal sættes som properties på RegExp-objektet (ignoreCase og global !-)
14. september 2004 - 16:47
#2
Tak for det hurtig svar. Men jeg kan ikke få dit sample til at virke (heller ikke i javascript) code: <script> txt = "din html-<h1>kil<br>de"; txt.replace(/<(\/?(h1|h2|h3|h4|p|td|div)[^>])>/ig, "[$1]"); txt.replace(/<[^>]*>/g,""); txt.replace(/\[(\/?(h1|h2|h3|h4|p|td|div)[^\]])\]/ig, "<$1>"); alert (txt) </script> Her har det jo meningen at kun <h1> skulle overleve - men det gøre <br> også :-(
17. september 2004 - 08:38
#3
Jeg ville have skudt på: (javascript-style) txt = "din html-kilde"; txt.replace(/<(\/?(h1|h2|h3|h4|p|td|div))>/ig, "[$1]"); txt.replace(/<[^>]+>/g,""); txt.replace(/\[(\/?(h1|h2|h3|h4|p|td|div)])\]/ig, "<$1>"); ... men det er kun fordi jeg ikke kan se hvad: [^>] og [^>] gør - i hvert fald i denne sammenhæng :)
08. januar 2005 - 15:28
#4
læg venligst svar
08. januar 2005 - 15:40
#5
Der mangler jo også en stjerne i eksemplet: txt = "din html-kilde"; txt.replace(/<(\/?(h1|h2|h3|h4|p|td|div)[^>]*?)>/ig, "[$1]"); txt.replace(/<[^>]*?>/g,""); txt.replace(/\[(\/?(h1|h2|h3|h4|p|td|div)[^\]]*?)\]/ig, "<$1>"); -- og den bruges til at medtage evt. attributter i tags, så de ikke forsvinder !-)
08. januar 2005 - 16:00
#6
Tak for point ;~}
Kurser inden for grundlæggende programmering