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", ""]
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.
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.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With