Quiero validar un campo de texto en una aplicación basada en Java donde quiero permitir solo dígitos separados por comas de 0 a 9. por ejemplo {0,1,2,3,4,5,6,7,8,9} expresión regular que aceptan un máximo de 10 dígitos en cualquier secuencia.

-1
Naveen Gupta 15 dic. 2016 a las 08:14

2 respuestas

La mejor respuesta

Si buscas una expresión regular simple, puedes probar esto:

^\d[\d,]{0,18}[^,]$

Editar:

Después del cambio de requisito. Puedes probar esta expresión regular:

^(?:(([\d]),)(?!.*\2)){0,9}\d$

Verificará números únicos

Explicación de expresiones regulares:

^                          - if starts with 
(([\d]),)                  - look for a digit followed by comma and capture the digit 
(?!.*\2)                   - don't allow any other characters or previously matched digits (`\2` matches the previous group which is digits matched in previous step)
(?:(([\d]),)(?!.*\2))       - don't capture the group (capture the entire string)
{0,9}                       - allow only 0-9 occurrences of previous match (9 chars for numbers and 9 chars for commas)
\d$                        - should end with a digit (10th digit)
1
Nishanth Matha 16 dic. 2016 a las 01:56

Utilice esta expresión regular:

\{\d(,\d){0,9}\}

Demostración: http://regexr.com/3esnc

0
Ashraful Islam 15 dic. 2016 a las 06:00