Limpar String

10 respostas
I

Ola pessoal minha duvida é o segunte :



preciso limpar codigos html de uma string , pois o cara que vai administrar

a gerencia ira escrever um texto com codigo html no meio, mas quando eu for colocar no banco esse dado eu preciso colocar o dado ( texto ) com codigo

html e sem codigo html ( texto limpo ) , sera que alguem poderia me dar uma

mao ? eu nao sei ainda como fazer isso , Limpar tags html de um String

Ja existe algo que faça isso ?



Se alguem puder me ajudar ficarei muito grato



Saldações Diego Crambeck



10 Respostas

J

Oi

izack, use o método replaceAll(String a, String b) da classe String… Assim, tu faz um reposítório de TAGs e depois faz o replace para as tags… ou então se tu quiser uma coisa mais elegante… percorra a String procurando pelas tags… que são os sinais de < e >

T+

C

“jeveaux”:
Oi

izack, use o método replaceAll(String a, String b) da classe String… Assim, tu faz um reposítório de TAGs e depois faz o replace para as tags… ou então se tu quiser uma coisa mais elegante… percorra a String procurando pelas tags… que são os sinais de < e >

T+


isso E osso nao funcuiona!

D

bom vc pode fazer um metodo para ir percorrendo caracter por caracter e ir jogando num buffer auxiliar (outra string), e assim q vc achar um sinal de tag “<” vc para de jogar pro buffer, mas continua percorrendo a String, dai assim q vc achar um “>”, vc volta a jogar pro buffer os seu chars… assim vc vai conseguir uma string sem tags html…

Entendeu!??!

J

“cloudstrifer”:
“jeveaux”:
Oi

izack, use o método replaceAll(String a, String b) da classe String… Assim, tu faz um reposítório de TAGs e depois faz o replace para as tags… ou então se tu quiser uma coisa mais elegante… percorra a String procurando pelas tags… que são os sinais de < e >

T+


isso E osso nao funcuiona!

Funciona sim!!!

T+

G

Olá mestre Izack, já deves ter resolvido o problema de qq forma podias usar: str.replaceAll("<[^<>]*>",""); que remove todas as tags htmls, usando expressões regulares…

1 abraço.

D

“gulaz”:
Olá mestre Izack, já deves ter resolvido o problema de qq forma podias usar: str.replaceAll("<[^<>]*>",""); que remove todas as tags htmls, usando expressões regulares…

1 abraço.

ae gulaz achei fera a sua soluçao, mas c poderia explicar um pouco melhor essa expressao regular q usou?? Q q significa??o * significa zero ou mais neh!? mas e o ^?!?! pra q serve?

G

olá:) lamento a demora para responder…
claro que posso explicar…
<[^<>]> =>
<A> são todas as palavras que começam por “<” e terminam em “>”
e têm qq coisa no meio (A), mas temos de ter cuidado para evitar casos com este: …Ola<tr><td>Mundo!.. ele removia tudo e ficava olaMundo! por isso vamos analisar o “A”.
A= [^<>]
Os “[]” permitem identificar uma classe de palavras (ex: [gulaz] classes das palavras que tem um ‘g’, ‘u’, ‘l’, ‘a’, ‘z’ ) e o [^gulaz]permite identificar qq caracter excepto g’, ‘u’, ‘l’, ‘a’, ‘z’. O resto vc sabe…

“*” O * é 0 ou mais palavras sem tags html como disseste, mas tb podia ter usado o “+” => 1 ou mais

qto as expressões regulares podes ver mais informações aqui: http://java.sun.com/developer/technicalArticles/releases/1.4regex/

1abraço, Gulaz

J

ahhh vai lendo caracter por caracter mesmo… e se achar < ou > vc apaga…

dai nao tem o problema de apagar a tag inteira neh =)

Bom, assim funciona! =) aehiuaeuih

cya!

D

“jujo”:
ahhh vai lendo caracter por caracter mesmo… e se achar < ou > vc apaga…

dai nao tem o problema de apagar a tag inteira neh =)

Bom, assim funciona! =) aehiuaeuih

cya!

Como assim “apagar a tag inteira” ,jujo!?!? Eu to quase entendendo, mas mesmo desse jeito se tivesse:

…Darkseid<tr><td>from Apokolips… naum ficaria
Darkseidfrom Apokolips ?!?!

G

Olá mestres!,
não devem pensar que ele vai ler caracter a caracter!( na verdade é o que acontece…) mas o melhor é pensarmos que a função desenvolvida pela SUN:) vai a procura de nosso padrão (<[^<>]*>)que é uma palavra que começa por < e termina por > e que pode ter qq coisa no meio excepto < e >.

Darkseid ficaria “Darkseidfrom Apokolips” se o padrão fosse “<*>”.

1abraço,
Gulaz

Criado 4 de junho de 2003
Ultima resposta 9 de jul. de 2004
Respostas 10
Participantes 6