solo regulares regular probar numeros letras expresiones expresion example especiales espacios espacio ejemplos caracteres blanco alfanumerico regex

regulares - javascript regex example



Expresión regular para caracteres alfanuméricos y de subrayado. (17)

Aquí está la expresión regular para lo que quiere con un cuantificador para especificar al menos 1 carácter y no más de 255 caracteres

[^ a-zA-Z0-9 _] {1,255}

Me gustaría tener una expresión regular que compruebe si una cadena contiene solo letras mayúsculas y minúsculas, números y guiones bajos.


Aquí hay mucha verbosidad, y estoy profundamente en contra, así que mi respuesta concluyente sería:

/^/w+$/

/w es equivalente a [A-Za-z0-9_] , que es prácticamente lo que quieres. (A menos que introduzcamos unicode a la mezcla)

Usando el cuantificador + , harás coincidir uno o más caracteres. Si también desea aceptar una cadena vacía, use * lugar.


Aunque es más detallado que /w , personalmente aprecio la legibilidad de los nombres completos de las clases de caracteres POSIX ( http://www.zytrax.com/tech/web/regex.htm#special ), por lo que diría:

^[[:alnum:]_]+$

Sin embargo, mientras que la documentación en los enlaces anteriores indica que /w "coincidirá con cualquier carácter en el rango 0 - 9, A - Z y a - z (equivalente a POSIX [: alnum:])", no he encontrado esto para ser cierto. No con grep -P todos modos. [:alnum:] incluir explícitamente el guión bajo si usa [:alnum:] pero no si usa /w . No puedes vencer lo siguiente para abreviar y dulce:

^/w+$

Junto con la legibilidad, el uso de las clases de caracteres POSIX ( http://www.regular-expressions.info/posixbrackets.html ) significa que su expresión regular puede funcionar en cadenas que no son ASCII, lo cual no funcionará con las expresiones regulares basadas en rango. el ordenamiento subyacente de los caracteres ASCII que puede ser diferente de otros juegos de caracteres y, por lo tanto, excluirá algunos caracteres que no sean ASCII (letras como œ) que tal vez desee capturar.


En Ciencias de la Computación, un valor alfanumérico a menudo significa que el primer carácter no es un número, sino un alfabeto o un guión bajo. A partir de entonces, el carácter puede ser 0-9 , AZ , az o guión bajo ( _ ).

Así es como harías eso:

Probado bajo php:

$regex = ''/^[A-Za-z_][A-Za-z/d_]*$/''

o toma esto

^[A-Za-z_][A-Za-z/d_]*$

y colóquelo en su lenguaje de desarrollo.


Intente estas extensiones multilingües que he hecho para la cadena.

IsAlphaNumeric: la cadena debe contener al menos 1 alfa (letra en el rango Unicode, especificado en charSet) y al menos 1 número (especificado en numSet). Además, la cadena debe comprender sólo de alfa y números.

IsAlpha: la cadena debe contener al menos 1 alfa (en el idioma especificado por charSet) y comprender solo alfa.

IsNumeric: la cadena debe contener al menos 1 número (en el idioma numSet especificado) y comprender solo números.

Se puede especificar el rango charSet / numSet para el idioma deseado. Los rangos de Unicode están disponibles en el siguiente enlace:

http://www.ssec.wisc.edu/~tomw/java/unicode.html

API:

public static bool IsAlphaNumeric(this string stringToTest) { //English const string charSet = "a-zA-Z"; const string numSet = @"0-9"; //Greek //const string charSet = @"/u0388-/u03EF"; //const string numSet = @"0-9"; //Bengali //const string charSet = @"/u0985-/u09E3"; //const string numSet = @"/u09E6-/u09EF"; //Hindi //const string charSet = @"/u0905-/u0963"; //const string numSet = @"/u0966-/u096F"; return Regex.Match(stringToTest, @"^(?=[" + numSet + @"]*?[" + charSet + @"]+)(?=[" + charSet + @"]*?[" + numSet + @"]+)[" + charSet + numSet +@"]+$").Success; } public static bool IsNumeric(this string stringToTest) { //English const string numSet = @"0-9"; //Hindi //const string numSet = @"/u0966-/u096F"; return Regex.Match(stringToTest, @"^[" + numSet + @"]+$").Success; } public static bool IsAlpha(this string stringToTest) { //English const string charSet = "a-zA-Z"; return Regex.Match(stringToTest, @"^[" + charSet + @"]+$").Success; }

Uso:

//English string test = "AASD121asf"; //Greek //string test = "Ϡϛβ123"; //Bengali //string test = "শর৩৮"; //Hindi //string test = @"क़लम३७ख़"; bool isAlphaNum = test.IsAlphaNumeric();


La combinación de signos diacríticos en una expresión regular abre toda una lata de gusanos, especialmente cuando se toma en cuenta Unicode. Es posible que desee leer sobre los locales Posix en particular.


Las siguientes expresiones regulares coinciden con caracteres alfanuméricos y subrayan:

^[a-zA-Z0-9_]+$

Por ejemplo, en Perl:

#!/usr/bin/perl -w my $arg1 = $ARGV[0]; # check that the string contains *only* one or more alphanumeric chars or underscores if ($arg1 !~ /^[a-zA-Z0-9_]+$/) { print "Failed./n"; } else { print "Success./n"; }



Para hacer coincidir una cadena que contiene solo esos caracteres (o una cadena vacía), intente

"^[a-zA-Z0-9_]*$"

Esto funciona para las expresiones regulares .NET, y probablemente también para muchos otros lenguajes.

Romperlo:

^ : start of string [ : beginning of character group a-z : any lowercase letter A-Z : any uppercase letter 0-9 : any digit _ : underscore ] : end of character group * : zero or more of the given characters $ : end of string

Si no desea permitir cadenas vacías, use + en lugar de *.

EDITAR Como otros han señalado, algunos lenguajes de expresiones regulares tienen una forma abreviada para [a-zA-Z0-9_] . En el lenguaje de expresiones regulares de .NET, puede activar el comportamiento de ECMAScript y usar /w como una abreviatura (que produce ^/w*$ o ^/w+$ ). Tenga en cuenta que en otros idiomas, y de forma predeterminada en .NET, /w es algo más amplio y también coincidirá con otros tipos de caracteres Unicode (gracias a Jan por señalarlo). Por lo tanto, si realmente tiene la intención de hacer coincidir solo esos caracteres, probablemente sea mejor utilizar la forma explícita (más larga).


Para mí hubo un problema en el sentido de que quiero distinguir entre alfa, numérico y alfanumérico, por lo que para garantizar que una cadena alfanumérica contenga al menos un alfa y al menos un numérico, utilicé:

^([a-zA-Z_]{1,}/d{1,})+|(/d{1,}[a-zA-Z_]{1,})+$


Para verificar toda la cadena y no permitir cadenas vacías, intente

^[A-Za-z0-9_]+$


Qué tal si:

^([A-Za-z]|[0-9]|_)+$

... si quieres ser explícito, o:

^/w+$

... si prefieres conciso (sintaxis de Perl).


Quieres verificar que cada personaje cumpla con tus requisitos, por eso usamos:

[A-Za-z0-9_]

E incluso puedes usar la versión abreviada:

/w

Lo que es equivalente (en algunos sabores de expresiones regulares, así que asegúrese de verificar antes de usarlo). Luego, para indicar que la cadena completa debe coincidir, se usa:

^

Para indicar que la cadena debe comenzar con ese carácter, entonces use

$

Para indicar la cadena debe terminar con ese carácter. Entonces use

/w+ or /w*

Para indicar "1 o más", o "0 o más". Juntándolo todo, tenemos:

^/w*$


Um ... pregunta: ¿Necesita tener al menos un personaje o no? ¿Puede ser una cadena vacía?

^[A-Za-z0-9_]+$

Hará al menos un mayúscula o minúscula alfanumérica o guión bajo. Si puede ser de longitud cero, simplemente sustituye el + por *

^[A-Za-z0-9_]*$

Editar:

Si es necesario incluir signos diacríticos (como cedilla - ç), deberá usar la palabra carácter que hace lo mismo que el anterior, pero incluye los caracteres diacríticos:

^/w+$

O

^/w*$


Usa Lookaheads para hacer "al menos uno". Confía en mí, es mucho más fácil.

Aquí hay un ejemplo que requeriría de 1 a 10 caracteres, que contienen al menos un dígito y una letra:

^(?=.*/d)(?=.*[A-Za-z])[A-Za-z0-9]{1,10}$

NOTA: podría haber usado / w pero luego entran en juego las consideraciones de ECMA / Unicode, lo que aumenta la cobertura de caracteres de / w "word character".


^ / w * $ funcionará para la combinación inferior 1 123 1av pRo av1


esto funciona para mí, puedes probar [/ p {Alnum} _]