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的主要内容,如果未能解决你的问题,请参考以下文章

cut文本切割工具

js实现字符串切割并转换成对象格式保存到本地

JavaScript split() 方法

python之字符串切割

JavaScript的split()

如何将字符串按指定长度分割