Validar espacios vacios o string.empty con regex

03/05/2005 - 18:30 por andy O | Informe spam
Hola todos

Tengo el siguiente método:

public static bool ValidaCarac(string cadena)
{

//Debug.Write((int)Convert.ToChar(cadena));

if (Regex.IsMatch(cadena,@"^[\w\s-_()]+$"))
return true;
else
return false;
}

Qué sucede si la cadena es string.empty o null , yo quiero que tambien
acepte los string.empty, he tratado con \0 pero no acepta.

En otras palabras si el usuario no pone nada en un campo este método debe
devolver true.

Espero que me ayuden.
Gracias.
 

Leer las respuestas

#1 Tristan
03/05/2005 - 19:51 | Informe spam
Tienes que cambiar el '+' por un '*'. La expresión regular tal como la
tienes acepta cualquier cadena que tenga uno o más (+) caracteres del
conjunto que hay dentro del corchete. Es decir:

if (Regex.IsMatch(cadena,@"^[\w\s-_()]*$"))

Por cierto, a no ser que el optimizador lo detecte, y lo dudo, es más
eficiente que crees una sola vez la expresión. En caso contrario para cada
validación tiene que compilar de nuevo la expresión.


Regex expresion = new Regex(@"^[\w\s-_()]*$");

public static bool ValidaCarac(string cadena)
{
if (expresion.IsMatch(cadena)
return true;
else
return false;
}


Juan Carlos Badiola
MVP - C#

Preguntas similares