Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Split string into array of equal length strings

Tags:

javascript

I have a string that I need split into smaller strings with an equal length of 6. I tried using:

'abcdefghijklmnopqrstuvwxyz'.split(/(.{6})/) 

But it returns an array with empty strings like so:

["", "abcdef", "", "ghijkl", "", "mnopqr", "", "stuvwx", ""] 
like image 581
trumank Avatar asked Dec 02 '11 17:12

trumank


People also ask

How do you split a string into an array?

The split() method splits a string into an array of substrings. The split() method returns the new array. The split() method does not change the original string. If (" ") is used as separator, the string is split between words.

What divides a string into an array of substrings?

The split() method splits (divides) a string into two or more substrings depending on a splitter (or divider). The splitter can be a single character, another string, or a regular expression. After splitting the string into multiple substrings, the split() method puts them in an array and returns it.


1 Answers

Use match in conjunction with a global flag, instead of split. {1,6} is needed, to also include the last part of the matched string. Patterns are greedy by default, which means that as much is matched as possible. So, .{1,6} will only match less than 6 characters at the end of a string.

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

Result:

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

Note that the returned object is a true array. To verify:

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

like image 104
Rob W Avatar answered Sep 23 '22 10:09

Rob W