JavaScript按照指定长度分割字符串切割分块分段等分等长二维数组pushsubstringslicesplitRegExptestfilterparseInt
Posted web半晨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript按照指定长度分割字符串切割分块分段等分等长二维数组pushsubstringslicesplitRegExptestfilterparseInt相关的知识,希望对你有一定的参考价值。
文章目录
1、分割字符串
1.1、方法一(代码较多)
function lengthCutting(str, num)
if (str == null || str == undefined) return null;
if (!(/^[0-9]*[1-9][0-9]*$/.test(num))) return null;
let array = new Array(),
len = str.length;
for (let i = 0; i < (len / num); i++)
if ((i + 1) * num > len)
array.push(str.substring(i * num, len));
else
array.push(str.substring(i * num, (i + 1) * num));
return array;
console.log(lengthCutting('ff0fce', 2));
// ['ff', '0f', 'ce']
1.2、方法二(代码一般)
function lengthCutting(str, num)
let strArr = [];
for (let i = 0; i < str.length; i += num) strArr.push(str.slice(i, i + num));
return strArr;
console.log(lengthCutting("20201105hong鸿仔1", 2));
// ['20', '20', '11', '05', 'ho', 'ng', '鸿仔', '1']
1.3、方法三(正则,不适用于十六进制以外的字符,但可以自行优化)
function lengthCutting(str, num)
// 此正则只针对十六进制
// 输入多于六个字符
// 超过的字符如果不属于十六进制会变成NaN
let reg = new RegExp(`([0-9a-fA-F]$num)`),
arr = str.split(reg);
arr = arr.filter(item => item != "");
arr = arr.map(item => parseInt('0x' + item));
return arr;
console.log(lengthCutting('54df5a', 2));
// [84, 223, 90]
2、分割数组
2.1、方式一(代码较多)
function cutArray(array, subLength)
let count = 1,
newArr = [],
resultArr = [];
array.forEach(item =>
newArr.push(item);
if (count % subLength == 0)
resultArr.push(newArr);
newArr = [];
if (count == array.length - 1) resultArr.push(newArr);
count++;
);
return resultArr;
console.log(cutArray([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], 5));
// [Array(5), Array(5), Array(4)]
2.2、方式二(代码较少)
function cutArray(array, subLength)
let index = 0,
newArr = [];
while (index < array.length)
newArr.push(array.slice(index, index += subLength));
return newArr;
console.log(cutArray([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], 5));
// [Array(5), Array(5), Array(4)]
以上是关于JavaScript按照指定长度分割字符串切割分块分段等分等长二维数组pushsubstringslicesplitRegExptestfilterparseInt的主要内容,如果未能解决你的问题,请参考以下文章