Tengo una cadena de entrada y quiero verificar que contenga:
- Solo letras o
- Solo letras y números o
- Solo letras, números o guiones bajos
Para aclarar, tengo 3 casos diferentes en el código, cada uno solicita una validación diferente. ¿Cuál es la forma más sencilla de lograr esto en C #?
fuente
Regex
para todas las letras, y 3 veces más rápido que compiladoRegex
para todas las letras con laIgnoreCase
opción (!).Solo letras:
Letras y numeros:
Letras, números y guiones bajos:
Tenga en cuenta que estos patrones también coinciden con caracteres internacionales (en oposición al uso de la
a-z
construcción).fuente
Para aquellos de ustedes que prefieren no ir con Regex y están en .NET 2.0 Framework (AKA no LINQ):
Solo cartas:
Sólo números:
Solo números o letras:
Solo números, letras o guiones bajos:
fuente
Creo que es un buen caso para usar expresiones regulares:
fuente
Puede hacer un bucle en los caracteres de la cadena y verificar con el Método de Char IsLetter, pero también puede hacer un truco con el método de Cadena IndexOfAny para buscar otros caracteres que no se supone que estén en la cadena.
fuente
Iterar a través de caracteres de cadenas y usar funciones de 'Char' llamadas 'IsLetter' e 'IsDigit'.
Si necesita algo más específico, use la clase Regex.
fuente
Si eres un novato, entonces puedes tomar la referencia de mi código ... ¡lo que hice fue poner un cheque para que solo pudiera obtener los alfabetos y los espacios en blanco! Puede repetir el ciclo for después de la segunda instrucción if para validar la cadena nuevamente
fuente
Recientemente, realicé mejoras de rendimiento para una función que verifica letras en una cadena con la ayuda de esta página.
Descubrí que las soluciones con expresiones regulares son 30 veces más lentas que las que tienen la verificación Char.IsLetterOrDigit.
No estábamos seguros de que esas letras o dígitos incluyeran y necesitábamos solo caracteres latinos, por lo que implementamos nuestra función basada en la versión descompilada de la función Char.IsLetterOrDigit.
Aquí está nuestra solución:
Y el uso es así:
fuente
Encuentre el método para validar si el carácter es letra, número o espacio, de lo contrario adjunte guión bajo (Sea libre de modificar según sus necesidades)
fuente