我尝试用JavaScript将字符串分成三部分,而不管字符串的长度如何。每个部分的长度不必与其他部分相同。
例如:
AABC:
AABBC
aheuc
你好,世界
发布于 2018-10-29 08:18:00
我相信这个函数应该能达到你的预期目标:
function splitStringInThree(string) {
if (string.length <= 3) return string.split('');
const remainder = string.length % 3;
const divisor = Math.floor(string.length / 3);
const sep1 = remainder === 2 || remainder === 1 ? 1 : 0;
const sep2 = remainder === 1 || remainder === 0 ? 0 : 1;
const string1 = string.slice(0, divisor + sep1);
const string2 = string.slice(divisor + sep1, (divisor * 2) + sep1 + sep2);
const string3 = string.slice((divisor * 2) + sep1 + sep2);
return [string1, string2, string3];
}
发布于 2018-10-29 08:23:12
如果你想要做的就是把一个字符串分成三个块(不管是什么模式或任何东西),那么下面的方法就适合你了。*
function splitChunks(string) {
var regex = RegExp(".{1,"+Math.ceil(string.length/3)+"}", 'g');
return string.match(regex);
}
我要做的是创建一个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"]
https://stackoverflow.com/questions/53037074
复制相似问题