2012-03-11 14 views
5

Encontré esto: Regex to match digits of specific length pero habla de Python. Estoy queriendo poder obtener un grupo de números aleatorios de longitud específica. Entonces, si tengo 167691#15316243, coincidirá con 15316243. No estoy seguro de cómo implementar esto. ahora tengo new RegExp('[0-9]+', "g"); que coincide con un grupo de números bien, pero ahora me di cuenta de que tendré algunas veces cuando tengo más de un grupo y solo quiero el grupo de ocho números.Regex para que coincida con un grupo específico de dígitos de cierta longitud?

Respuesta

10

Puede especificar la longitud de un conjunto coincidente usando {}.

Por ejemplo: [0-9]{8}

que coincidirá con cualquier número del 0 al 9 con una longitud específica de 8 caracteres.

También puede especificar un rango mínimo/máximo en lugar de forzar un legnth específico. Así que si quería un mínimo de 4 y un máximo de 8 el ejemplo cambiaría a: [0-9]{4,8}

+0

es casi seguro que desea límites. – tchrist

2

En pocas palabras la cantidad de repetición entre llaves:

"167691#15316243".match(/\d{8}/g); 

Aquí está el violín: http://jsfiddle.net/3r5vd/


le sugeriría leer this article (desplácese hacia abajo a la sección sobre la limitación de repetición).

he aquí un fragmento:

sabores de expresiones regulares modernos [...] tienen un operador de repetición adicional que le permite especificar cuántas veces una ficha se puede repetir. La sintaxis es {min,max}, donde min es un número entero positivo que indica el número mínimo de coincidencias, y max es un número entero igual o mayor que min que indica el número máximo de coincidencias. Si la coma está presente pero se omite max, el número máximo de coincidencias es infinito. Entonces {0,} es lo mismo que *, y {1,} es lo mismo que +.
Al omitir tanto la coma como el valor máximo, el motor debe repetir el token exactamente min veces.

14
[0-9]+ - Matches one or more numbers 
[0-9]{8} - Matches exactly 8 numbers. 
[0-9]{8,10} - Matches between 8 and 10 numbers. 
[0-9]{8,} - Matches 8 or more numbers. 
[0-9]* - Matches zero or more numbers. 
[0-9]? - Matches zero or one number. 
+0

[0-9] {8,} - la longitud mínima es 8 – ThoQ

+0

@ThoQLuong agregado, ¡gracias! No se pudo aceptar la revisión debido a los requisitos de reputación. – Nathan

+0

Nota importante: no agregue un espacio después del coma en '{8,10}'. Debería ser exactamente '{8,10}' not '{8, 10}' – Alendorff

Cuestiones relacionadas