2011-12-02 16 views

Odpowiedz

53

Użyj match w połączeniu z flagą globalną zamiast podziału. {1,6} jest potrzebny, aby dołączyć także ostatnią część dopasowanego ciągu. Wzorce są domyślnie chciwe, co oznacza, że ​​tak wiele się dopasowuje, jak to tylko możliwe. Tak więc, .{1,6} będzie dopasowywać mniej niż 6 znaków na końcu łańcucha.

'abcdefghijklmnopqrstuvwxyz'.match(/.{1,6}/g); 

Wynik:

["abcdef", "ghijkl", "mnopqr", "stuvwx", "yz"]; 

Należy pamiętać, że zwracany obiekt jest prawdziwa tablica. Aby zweryfikować:

console.log('.'.match(/./g) instanceof Array); //true 

+0

działa jak marzenie! Dzięki! – trumank

+1

Zwróć uwagę, że '.' nie * nie * pasuje do dowolnego znaku. To [ignoruje 'Lineterminator's] (http://es5.github.io/#x15.10.2.8). Zamiast tego użyj '[\ s \ S]', aby upewnić się, że działa on na wieloliniowych ciągach. – user123444555621

Powiązane problemy