2010-08-05 11 views
13

Mam ten ciąg:Producent tablica z regex

{example1}{example2}{example3} 

to jest wyrażenie regularne, aby znaleźć te {anything in it}:

/\{.*?\}/g 

Teraz chcę wiedzieć, w jaki sposób umieścić je w tablicy tak Mogę wykonać instrukcję for in.

Chcę tablicy coś jak array("{example1}","{example2}","{example3}");?

+2

Jeśli masz rzeczywisty Array, lepiej byłoby użyć prostej pętli 'for' zamiast' for ... in', która może dać ci więcej niż się spodziewasz: wszystkie rozszerzenia do Na liście znajdzie się prototyp Array' oraz elementy w tablicy. –

+0

Nie powinieneś powtarzać tablic z 'for-in'. Użyj pętli 'for' w stylu C, najlepiej. – strager

Odpowiedz

10
var matches = '{example1}{example2}{example3}'.match(/\{.*?\}/g); 
// ['{example1}', '{example2}', '{example3}'] 

See it here.

Powinieneś także użyć pętli for do iteracji po tablicy. for in może powodować działania niepożądane, takie jak zbieranie kolejnych elementów do iteracji w łańcuchu prototypów. Możesz użyć hasOwnProperty(), ale pętla for jest o wiele łatwiejsza.

Aby uzyskać wydajność, można również buforować właściwość length przed włączeniem jej do stanu for.

+0

miło, to jest przykład, że może uczyć się od :) –

+0

hm mówi "Ty ostatnio głosowałeś na tę odpowiedź 9 godzin temu Twój głos jest teraz zablokowany, chyba że ta odpowiedź jest edytowana" –