none
Aporte - Usando Expresiones Regulares Para Validar Datos(Correo Electrónico,Solo Letras,Solo Números,Etc) !!! RRS feed

  • Debate general

  • Buenos dias compañeros, el dia de hoy les traigo una forma muy buena de validar los datos en el sistema, a que me refiero con esto, me refiero a validar que solo sean mayusculas, minisculas, numeros, letras, correo electronico y mas.

    Primero agregaremos la siguiente libreria:

    using System.Text.RegularExpressions;


    bueno lo siguiente ya es mas facil xD, ahora esta lo bueno, al momento de nosotros tener un TextBox, donde escribamos los datos de entrada vamos a querer validarlo, supongamos que tenemos un TextBox y queremos que al dar clic en el boton aceptar primero me valide la informacion, bueno si ese es el caso haremos lo siguiente, en el boton de validacion agregaremos las siguientes lineas:

    private void btnCalcular_Click(object sender, EventArgs e)
            {
    Regex Val = new Regex(@"^[+-]?\d+(\.\d+)?$");
    if (Val.IsMatch(txtDof.Text) && Val.IsMatch(txtNs.Text) && Val.IsMatch(txtX.Text) && Val.IsMatch(txtP.Text))
                    {
                        PrimerValorDeX  = Comparar(txtDof, txtX, txtP, txtNs);
                        NumSeg          = Convert.ToDouble(txtNs.Text.ToString());
                        NumSeg          = NumSeg * 2;
                        txtNs.Text      = NumSeg.ToString();
                    }
                    else
                    {
                        MessageBox.Show("Favor de introducir Números Solamente", "Error de Sintaxis", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        txtX.Focus();
                    }

    Ahora Explicare el codigo, lo que hacemos el poner la validacion con Regex, este es para validar el campo con loq ue tenemos ahi, lo que aqui se usa con expresiones regulares, algo complicado de entender, se los traducire:

    if (Val.IsMatch(txtDof.Text) && Val.IsMatch(txtNs.Text) && Val.IsMatch(txtX.Text) && Val.IsMatch(txtP.Text)

    Si txtDof y txtNs y txtX y txtP son solo numeros(sin letras o caracteres especiales)

    entonces haslo todo, sino, manda un mensaje de error diciendo que solo se admiten numeros.


    A continuacion les enlistare varias expresiones Regulares que pueden usar para validar datos:

    Validar una URL:

    /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \?=.-]*)*\/?$/  

    Validar un Email:

    \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 

    Validar un numero de Telefono:

    ^[+-]?\d+(\.\d+)?$

    Validar una tarjeta de credito

    ^((67\d{2})|(4\d{3})|(5[1-5]\d{2})|(6011))(-?\s?\d{4}){3}|(3[4,7])\ d{2}-?\s?\d{6}-?\s?\d{5}$  

    Validar un codigo postal

    ^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$  

    Validar un Nombre

    [a-zA-ZñÑ\s]{2,50}

    Validar Domicilio:

    ^.*(?=.*[0-9])(?=.*[a-zA-ZñÑ\s]).*$

    Validar IFE

    ^.*(?=.{13})[+-]?\d+(\.\d+)?$

    Validar CURP

    ^.*(?=.{18})(?=.*[0-9])(?=.*[A-ZÑ]).*$

    Solo Numeros

    [0-9]{1,9}(\.[0-9]{0,2})?$

    Solo Letras

    [a-zA-ZñÑ\s]

    Solo tienen que poner la expresion donde dice Exp:

    Regex Val = new Regex(@"Exp");
    Espero y les sea util el aporte, Comenten =).


    Irwin Romero (IrJaKe)

    lunes, 14 de mayo de 2012 16:30

Todas las respuestas

  • Hola Irwin buen aporte me ha servido mucho.

    Pero tengo una duda, en caso de que quisiera que el teléfono acepte guion medio (-) como sería?

    porque he visto en otras paginas que cuesta trabajo asignarlo a una expresion

    Me sería de gran ayuda tu respuesta

    Gracias de antemano

    viernes, 25 de julio de 2014 17:41
  • Creo que la del CURP ( La unica que probe ) no sirve.

    Creo que es esta

    ^[a-zA-Z]{4,4}[0-9]{6}[a-zA-Z]{6,6}[0-9]{2}$

    • Editado trisaac viernes, 1 de agosto de 2014 18:15
    viernes, 1 de agosto de 2014 18:12