Necesito una expresión regular que permita solo A-Z, a-z, 0-9, el carácter _ y el punto (.) En la entrada. Intenté:Coincidencia regex A-Z, a-z, 0-9, _ y
[A-Za-z0-9_.]
Pero no funcionó. ¿Cómo puedo arreglarlo?
Necesito una expresión regular que permita solo A-Z, a-z, 0-9, el carácter _ y el punto (.) En la entrada. Intenté:Coincidencia regex A-Z, a-z, 0-9, _ y
[A-Za-z0-9_.]
Pero no funcionó. ¿Cómo puedo arreglarlo?
^[A-Za-z0-9_.]+$
Desde el principio hasta el final de la cadena, haga coincidir uno o más de estos caracteres.
Editar:
Tenga en cuenta que ^
y $
coincidir el comienzo y el final de una línea. Cuando multiline está habilitado, esto puede significar que una línea coincide, pero no la cadena completa.
Utilice \A
para el comienzo de la cadena, y \z
para el final.
Véase, por ejemplo: http://msdn.microsoft.com/en-us/library/h5181w5w(v=vs.110).aspx
También puede ser '^ [\ w.] + $', Pensó que no funciona en todas partes. – Kobi
@Kobi: funciona en casi todas partes, simplemente de manera diferente :) – SilentGhost
Trabajando a partir de lo que ha dado Vamos a suponer que desea comprobar que alguien no ha introducido ningún cartas distintos a los que ha enumerado. Para que eso funcione desea buscar todos los caracteres que no sean los que figuran:
[^A-Za-z0-9_.]
y el uso que en un partido en el código, algo así como:
if (/[^A-Za-z0-9_.]/.match(your_input_string)) {
alert("you have entered invalid data");
}
Hows que?
Tal vez, debe especificar más exactamente lo que no funcionó y en qué entorno se encuentra.
En cuanto a la afirmación de que el punto es especial en una clase de charackter, esto no es cierto en todos los entornos de programación. Por ejemplo, el siguiente script Perl
use warnings;
use strict;
my $str = '!!!.###';
$str =~ s/[A-Za-z_.]/X/g;
print "$str\n";
produce
!!!X###
se podía hacer con un poco más de información en este caso, es un poco vago. Algunos ejemplos de entrada serían buenos y el contexto en el que lo está utilizando, ¿también el lenguaje? –