Retirando tags HTML dos campos de entrada do Web Form
Geralmente temos aplicativos na qual não queremos aceitar alguns tipos de entrada nos campos dos formulários. Para resolver esse problema podemos usar RegularExpressionValidator e simplesmente não permitir entradas não autorizadas.
Mas há casos em que não queromos limitar a digitação do usuário no campo, mas queremos fazer alguns filtros antes de salvar na base de dados. É o caso de um título de um informativo por exemplo:
Se não formatarmos e o usuário digitar:
<h2>Retirando tags HTML dos campos de entrada do Web Form</h2>
Será exibido assim:
Retirando tags HTML dos campos de entrada do Web Form
Mesmo que tenha um css por trás e uma formatação padrão, a formatação in-line irá sobrepor a formatação atual, ai surge a necessidade de aplicar esse tipo de filtro na entrada dos dados do usuário.
Para isso use a linha abaixo:
[C#]
|
string strSemHtml = System.Text.RegularExpressions.Regex.Replace(this.seuTextBox1.Text,"<[^>]*>", " "); |
[VB.NET]
|
Dim strSemHtml As String = System.Text.RegularExpressions.Regex.Replace(Me.seuTextBox1.Text,"<[^>]*>", " ") |
Entendendo a Expressão Regular em questão
Perceba que usamos um ER (Expressão Regular) para fazer o Replace. Ela simplesmente elimina os caracteres < e > e tudo que está contido entre eles.
|
<[^>]*> |
O "robô" que fará a consulta e substituição fará a comparação das strings caractere por caractere e como isso ele começará procurando por: <, achando, ele ir buscar por qualquer outro caractere após este, que está representado por *, até achar o último caractere >
Se deixarmos a ER assim: <.*>. Ele pegará tudo entre o primeiro < e o último >. Exemplo:
|
Eu sou <b>brasileiro</b> e não desisto nunca. |
Resultará em:
|
Eu sou e não desisto nunca. |
Assim acrescentamos um caractere de negação [^>] para que ao encontrar > ele finalize a procura do * e passe pro próximo caractere pedido >. Dessa forma funcionará como esperado:
|
Eu sou <b>brasileiro</b> e não desisto nunca. |
Resultará em:
|
Eu sou brasileiro e não desisto nunca. |
Conclusão
Espero que tenham gostado da dica. O livro informado na referência é excelente e eu considero leitura obrigatória, quem tiver oportunidade compre-o e leia.
Qualquer dúvida que tiverem sobre ER, pode me mandar um e-mail que se tiver ao meu alcance, tentarei ajudar com o maior prazer. Se a procura for muito grande, escreverei alguns artigos ensinando ER e usando com .NET. Até o próximo artigo.
Referências
Expressões Regulares: Guia de Consulta Rápida On-Line:
http://guia-er.sourceforge.net/
How To: Use Regular Expressions to Constrain Input in ASP.NET
http://msdn2.microsoft.com/en-us/library/ms998267.aspx
Fabiano Vitucci Santiago
Analista de Sistemas Web das Faculdades Santo Agostinho e i4 Design Soluções em Montes Claros - MG, trabalha com Desenvolvimento de aplicativos Web, Windows e Mobile a 7 anos e a 5 se dedica ao estudo e desenvolvimento com a Plataforma .NET.
www.santoagostinho.edu.br / www.i4design.com.br
fabianosan@hotmail.com