Validar Campos Numéricos con Expresiones Regulares en C# (Consola)

En una entrada anterior expliqué cómo validar un campo numérico utilizando el método TryParse. Sin embargo, existe otra forma de hacer validación de campos y es a través del uso de expresiones regulares.

Una expresión regular es una secuencia de caracteres que forman un patrón de búsqueda y suelen utilizarse para buscar patrones en cadenas de caracteres.

El siguiente código pide un valor por teclado y valida que sea numérico a través del uso de una expresión regular, usando para ello el método IsMatch de la clase Regex.


static void Main(string[] args)
        {
            int n;            
            Console.WriteLine("VALIDACIÓN DE CAMPOS USANDO EXPRESIONES REGULARES");
            Console.Write("Ingrese un valor numérico : ");
            string linea = Console.ReadLine();
            ValidarCampoNumerico(ref linea); //Subprograma para validar la entrada de datos por teclado
            n = Convert.ToInt32(linea);
            Console.WriteLine("El valor {0:N0} es numérico", n);
            Console.ReadKey();
        }

        private static void ValidarCampoNumerico(ref string linea)
        {
            string expRegNum = "^[0-9]+$"; //Expresión Regular para números enteros
            Regex esNumero = new Regex(expRegNum);
            while(!esNumero.IsMatch(linea))
            {
                Console.WriteLine("\nERROR. El valor ingresado debe ser un valor numérico.\n");
                Console.Write("Ingrese un valor numérico : ");
                linea = Console.ReadLine();
            }
        }

A través de la expresión regular "^[0-9]+$" le preguntamos al método IsMatch de la clase Regex si el contenido de la variable linea no es numérico, en cuyo caso el subprograma entrará en un bucle informándonos del error y pidiéndonos que ingresemos por teclado un valor numérico.

El código del programa para .Net lo puedes descargar de aquí.

No hay comentarios:

Publicar un comentario