2012-03-11 17 views
5

Ho trovato questo: Regex to match digits of specific length ma parla di Python. Sto volendo essere in grado di ottenere un gruppo di numeri casuali di lunghezza specifica. Quindi se ho 167691#15316243 corrisponderà a 15316243. Non sono sicuro di come implementarlo. in questo momento ho new RegExp('[0-9]+', "g"); che corrisponde a un gruppo di numeri, ma ora ho capito che avrò alcune volte quando ho più di un gruppo e voglio solo il gruppo di otto numeri.Regex per abbinare un gruppo specifico di cifre di una certa lunghezza?

risposta

10

È possibile specificare la lunghezza di un set corrispondente utilizzando {}.

Ad esempio: [0-9]{8}

che corrisponderà tutti i numeri da 0 a 9 con una specifica lunghezza di 8 caratteri.

È inoltre possibile specificare un intervallo min/max invece di forzare un segmento specifico. Quindi se volevi un minimo di 4 e un massimo di 8 l'esempio cambierebbe in: [0-9]{4,8}

+0

Quasi certamente vorrai dei limiti. – tchrist

2

In poche parole la quantità di ripetizione tra parentesi graffe:

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

Ecco il violino: http://jsfiddle.net/3r5vd/


Io suggerirei di leggere this article (scorrere verso il basso fino alla sezione sulla limitazione Ripetizione).

Ecco una citazione:

moderni sapori regex [...] avere un operatore di ripetizione aggiuntiva che consente di specificare quante volte un token può essere ripetuto. La sintassi è {min,max}, dove min è un numero intero positivo che indica il numero minimo di corrispondenze e max è un numero intero uguale o maggiore di min che indica il numero massimo di corrispondenze. Se la virgola è presente ma si omette max, il numero massimo di corrispondenze è infinito. Quindi {0,} corrisponde a * e {1,} corrisponde a +.
L'omissione di virgola e max indica al motore di ripetere esattamente il token min volte.

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 lunghezza minima è 8 – ThoQ

+0

@ThoQLuong aggiunto, grazie! Non è stato possibile accettare la revisione a causa di requisiti di reputazione. – Nathan

+0

Nota importante: non aggiungere uno spazio dopo il coma in '{8,10}'. Dovrebbe essere esattamente '{8,10}' not '{8, 10}' – Alendorff

Problemi correlati