Admitir sólo caracteres alfanuméricos en una cadena – c# .net string

Pregunta:


Necesito admitir sólo caracteres alfanuméricos en una cadena y en la cual también pueda tener espacios blancos involucrados (es decir, "hola 1234" debe ser válida, pero NO "hola []"). Tengo el siguiente código:

string campo = string.Empty;
            do
            {
                Console.WriteLine("Ingrese un string no vacio: ");
                campo = Console.ReadLine();

            } while (String.IsNullOrEmpty(campo) && campo.All(c => Char.IsLetterOrDigit(c)));

            Console.WriteLine("TEXTO: " + campo);

Para realizar esto, utilice la funciones Char.IsLetterOrDigit pero no me funciona ya que al poner símbolos,guiones o un espacio vacio ¨{}[]- me lo admite igual y se me muestra el pantalla y no vuelve a pedir el ingreso de datos.

PRUEBA:

ENTRADA:

{}[]

SALIDA OBTENIDA:

{}[]

SALIDA ESPERADA:

Ingrese un string no vacio:

Preguntado por: byte96

sstan

Tu condición en el WHILE es incorrecta. Debería ser:

while (String.IsNullOrEmpty(campo) || !campo.All(c => Char.IsLetterOrDigit(c)))

Nota los 2 cambios:

  1. OR en vez de AND.
  2. NOT en frente de la segunda condición (mientras NO tenga los caracteres esperados… seguimos pidiendo una cadena)

Edición

Si deseas permitir espacios también, con tal que la cadena no se componga de espacios solamente, puedes usar la condición siguiente:

while (String.IsNullOrWhiteSpace(campo)
    || !campo.All(c => Char.IsLetterOrDigit(c) || Char.IsWhiteSpace(c)))

Fuente

Related Posts:

Declarar un array de structs de tamaño dinamico – c++
Pregunta: buenas, lo que quiero conseguir es declarar un struct con array que tenga su tamaño dinamico, pero cuando lo hago el programa se me ...
Problemas con el registro de un archivo .tlb – c# windows vb6
Pregunta: La situación es la siguiente: He creado un pequeño proyecto de librería de clases en C# que me permita realizar ciertas operaciones. El nombre del ...
Uso de js y c# en unity. ¿Igual rendimiento? – javascript c# unity3d
Pregunta: Estoy comenzando con unity . Y veo que se pueden usar c# y js para programar. Mi pregunta es si tanto c# como js ...
Cómo puedo incluir librería beecrypt en un proyecto en C – c
Pregunta: Tengo un archivo .lib (librería) y quiero usarla en un proyecto de C. Para ser más especifica estoy intentando instalar beecrypt que es una librería ...
Ocultar y Mostrar con Mapa de Google – javascript c# asp.net
Pregunta: Tengo un div en mi página ASP.NET que contiene un Mapa de Google, y necesito mostrarlo y ocultarlo pero no me funciona. Este es el ...
para que sirve #ifdef_MSDOS_ en c++? – c++
Pregunta: He tenido problemas porque donde trabajo usan una versión de dev c++ 4.9 y yo uso en mi hogar la 5.1, ...
¿Como instalar C# en SublimeText? – c# sublimetext3 sublimetext
Pregunta: El problema es que actualmente quiero programar sobre esta tecnologia, pero no quiero descargar aun el visual studio porque consume recursos y es bastante ...
Thread en c++ error compilacion – c++
Pregunta: Estoy empezando con threads y he estado siguien varios tutos y creo que esta todo bien, pero a la hora de ejecutarlo me da ...
¿Es posible capturar un segfault con try/catch? – c++ try-catch
Pregunta: Para comprobar si es posible hice lo siguiente: try { int *x = 0; *x = 1234; } catch(...) { ...
Conexion C# con PostgreSQL mediante proveedor Npgsql – c# postgresql
Pregunta: Hola el problema es que la conexión esta bien solo cuando estoy utilizando el ODBC, pero cuando lo cambio al proveedor de PostgreSQL Npgsql, ...
Construcción extraña: objeto = funcion1() && funcion2() ¿Posible? – c#
Pregunta: acabo de encontrarme en una documentación una construcción como esta: var pose = Body.LeftHand.Near(Body.Head) && Body.LeftArm.Bended(90); posees una objeto que debe crearse a partir de la ...
Cómo importar datos de un Excel a DataGrid pero iniciarlo en la segunda fila? – c# sql-server postgresql
Pregunta: Disculpen una duda, como cargar de excel un formato iniciando en la segunda fila? tengo este código solamente que el excel esta justificado en ...
No completa el ciclo foreach – c#
Pregunta: Estoy haciendo un método para invertir palabras que contengan 5 o mas letras. El problema que tengo es que si mi cadena tiene mas ...
Obtener elementos específicos de un array – c array optimización
Pregunta: Buenas, si yo por ejemplo hago: char buf; fgets(buf, 1024, stdin); ¿Puedo coger los caracteres que escribí del array sin coger los elementos que no utilicé? ¿O ...
Averiguar número de elementos en un array de LUA – c++ array lua
Pregunta: ¿Cómo puedo averiguar el número de elementos que contiene un array en un fichero LUA? me gustaría poder volcarlo a un entero desde C++. -- ...
Tags:, ,

Add a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *