Если все, что вы хотите сделать, это разбить строку на три части (независимо от шаблонов или чего-либо еще), то приведенное ниже будет работать для вас. *
function splitChunks(string) {
var regex = RegExp(".{1,"+Math.ceil(string.length/3)+"}", 'g');
return string.match(regex);
}
Что я делаю, так это создание функции регулярного выражения, которая разбивает строку на куски. Единственная «магия», которую я здесь добавляю, заключается в том, что я устанавливаю длину куска равной длине строки, деленной на 3 (как вы можете видеть в переменной regex
.
* Единственная проблема заключается в том, что он будет хорошо работать только для длин строк> 5. Некоторые строки более короткой длины не будут разбиваться на куски по 3, так как не хватает строки, чтобы красиво разделиться на 3 ломти.
Примеры вывода:
> splitChunks("abcdefg");
(3) ["abc", "def", "g"]
> splitChunks("abcdefghijk");
(3) ["abcd", "efgh", "ijk"]
> splitChunks("abc");
(3) ["a", "b", "c"]
> splitChunks("abcd"); // :(
(2) ["ab", "cd"]