elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  RegEx
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: RegEx  (Leído 5,445 veces)
CH4ØZ

Desconectado Desconectado

Mensajes: 108



Ver Perfil
RegEx
« en: 11 Septiembre 2011, 07:49 am »

Bueno estoy usando RegEx.Replace para filtrar todos los caracteres no numericos de un TextBox; esto ya lo logre.
Mi problema surge al querer agregar una exepcion al filtro. yo quiero que en el cuadro se puedan poner numeros (0-9) y tambien el "."(punto).
actualmente el codigo es el siguiente:
Código
  1. TextBox12.Text = Regex.Replace(TextBox12.Text, [!-/:-■], "")
(■ = 254ascii)


En línea

no me juzguen si no me conocen
CH4ØZ

Desconectado Desconectado

Mensajes: 108



Ver Perfil
Re: RegEx
« Respuesta #1 en: 14 Septiembre 2011, 02:09 am »

nadie sabe??? realmente no logro una forma de agregar una excepcion para un caracter.


En línea

no me juzguen si no me conocen
adan-2994

Desconectado Desconectado

Mensajes: 59


"><script>alert(document.cookie+'cuidate');</scr..


Ver Perfil WWW
Re: RegEx
« Respuesta #2 en: 15 Septiembre 2011, 02:08 am »

Mira buscando en google encontre esto
http://www.elguille.info/regexp/regExp01.aspx
http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/166-expresiones-regulares.htm

Y yo cree un programa que tambien necesitaba bloquear los caracteres no numerikos pero permitir el punto

Eso lo logre en el evento KeyPress del TextBox algo asi

Código
  1.  Private Sub TextBox1(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
  2.        If Not (IsNumeric(e.KeyChar) Or e.KeyChar = "." ) Then
  3.            My.Computer.Audio.PlaySystemSound(Media.SystemSounds.Asterisk)
  4.            e.Handled = True
  5.        End If
  6.    End Sub

Fijate q si se teclea algun caracter q no sea numero o el punto reproduce un sonido del sistema (arterisko)

Talvez tanbien quieras bloquear el salto de linea (13) y el tabulador, para eso usa el siguiente codigo

Código
  1.  Private Sub TextBox1(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
  2.        If Not (IsNumeric(e.KeyChar) Or e.KeyChar = "." Or Asc(e.KeyChar) = 8 Or Asc(e.KeyChar) = 13) Then
  3.            My.Computer.Audio.PlaySystemSound(Media.SystemSounds.Asterisk)
  4.            e.Handled = True
  5.        End If
  6.    End Sub

Observa como se usa IF
En línea

...ella tiene flow, tremendo ranqueo, tu la vez pasar con su nebuleo (Blam Blam blin blin)
CH4ØZ

Desconectado Desconectado

Mensajes: 108



Ver Perfil
Re: RegEx
« Respuesta #3 en: 15 Septiembre 2011, 02:41 am »

si, esa parte ya la hice. explico un poco mas detallado.
es un textbox en el cual va una coordenada (aproximadamente 8 digitos), por lo que seria tedioso copiar numero por numero. entonces permito que peguen el contenido desde el clipboard.
el problema es que el evento KeyPress no es llamado, por lo cual use RegEx en el evento TextChange. el codigo completo para esto es:

Código
  1. Const BadChars As String = "[!-/:-&#9632;]"
  2.  
  3. Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress
  4.    If Not IsNumeric(e.KeyChar) And Not Char.IsControl(e.KeyChar) And e.KeyChar <> "." And Asc(e.KeyChar) <> 8 Then
  5.        e.Handled = True
  6.    If e.KeyChar = "." And TextBox3.Text.IndexOf(".") <> -1 Then
  7.        e.Handled = True
  8. End Sub
  9.  
  10. Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged
  11.    TextBox3.Text = Regex.Replace(TextBox3.Text, BadChars, "")
  12. End Sub

lo que aparece como "&#9632;" es el caracter ascii 254
En línea

no me juzguen si no me conocen
Valkyr


Desconectado Desconectado

Mensajes: 646


Divide y vencerás


Ver Perfil
Re: RegEx
« Respuesta #4 en: 15 Septiembre 2011, 16:15 pm »

Sí es una expresión regular ¿por qué no usas esto?:

Código:
[^\d\.]+

Con esa expresión reconoces todo lo que no sean números ni punto.

Saludos.
En línea

CH4ØZ

Desconectado Desconectado

Mensajes: 108



Ver Perfil
Re: RegEx
« Respuesta #5 en: 16 Septiembre 2011, 00:21 am »

wow gracias. eso funciono perfecto. no se me ocurrio xq todavía no termino de comprender RegEx.
En línea

no me juzguen si no me conocen
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Todos, menos 1 caracter en REGEX
PHP
Skeletron 4 5,072 Último mensaje 3 Junio 2010, 01:30 am
por raul338
Ordenar array perl y regex
Scripting
¨°o.O (ßa¢Kg|姧) O.o° 6 5,757 Último mensaje 9 Julio 2010, 03:46 am
por ~ Yoya ~
Problema con Regex.Matcher y replaces.
Java
HeXmiT 1 2,697 Último mensaje 15 Enero 2011, 23:25 pm
por HeXmiT
RegEx Buddy [Instalador y Portable] [Herramienta]
Programación Visual Basic
Elemental Code 0 4,834 Último mensaje 8 Octubre 2011, 18:54 pm
por Elemental Code
duda con regex
PHP
jhonatanAsm 8 4,327 Último mensaje 28 Abril 2012, 20:32 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines