expresión regular de 6 dígitos
Necesito una expresión regular que requiera al menos UN dígito y SEIS como máximo.
He resuelto esto, pero ninguno de ellos parece funcionar.
^[0-9][0-9]\?[0-9]\?[0-9]\?[0-9]\?[0-9]\?$
^[0-999999]$
¿Alguna otra sugerencia?
4 answers
Puede usar el cuantificador de rango {min,max}
para especificar un mínimo de 1 dígito y un máximo de 6 dígitos como:
^[0-9]{1,6}$
Explicación:
^ : Start anchor
[0-9] : Character class to match one of the 10 digits
{1,6} : Range quantifier. Minimum 1 repetition and maximum 6.
$ : End anchor
¿Por qué tu expresión regular no funcionó ?
Estabas casi cerca en la expresión regular:
^[0-9][0-9]\?[0-9]\?[0-9]\?[0-9]\?[0-9]\?$
Puesto que había escapado del ?
precediéndolo con el \
, el ?
ya no estaba actuando como un meta-carácter regex ( para 0
o 1
repeticiones) sino que estaba siendo tratado literalmente.
Para arreglarlo basta con eliminar el \
y tú estás ahí.
Ver en rubular.
La expresión regular basada en cuantificadores es más corta, más legible y se puede extender fácilmente a cualquier número de dígitos.
Su segunda expresión regular:
^[0-999999]$
Es equivalente a:
^[0-9]$
Que coincide con cadenas con exactamente un dígito. Son equivalentes porque una clase de caracteres [aaaab]
es igual a [ab]
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-01-21 12:07:40
^\d{1,6}$
....................
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-01-21 11:50:00
Usted podría intentar
^[0-9]{1,6}$
Debería funcionar.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-01-21 11:50:44
^[0-9]{1,6}$
debería hacerlo. No lo sé VB.NET lo suficientemente bueno para saber si es lo mismo allí.
Para ejemplos, echa un vistazo a la Wikipedia.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-01-21 11:49:39