javascript - 将字符串按照指定长度拆分成数组
问题描述
根据指定长度将字符串拆分为数组。
有没有一种简单的方法可以用 JavaScript 中的数组来做到这一点?
我编写了以下函数来做到这一点,但有什么更短或更好的吗?
function splitIntoArr(str, num) {
let arr = [];
let len = Math.ceil(str.length / num);
for (let i = 0; i < len; i++) {
arr.push(+str.substring(i * num, i * num + num))
}
return arr;
}
splitIntoArr("123456789", 2) # Outputs: [12, 34, 56, 78, 9]
splitIntoArr("123456789", 3) # Outputs: [123, 456 ,789]
splitIntoArr("123456789", 4) # Outputs: [1234, 5678 ,9]
解决方案
您可以使用正则表达式和match
最多所需的字符数:
const splitIntoArr = (str, num) => str.match(new RegExp(`.{1,${num}}`, 'g'));
console.log(splitIntoArr("123456789", 2));
console.log(splitIntoArr("123456789", 3));
console.log(splitIntoArr("123456789", 4));
推荐阅读
- html - 为所有页面应用背景颜色,包括 Shiny 中的导航栏
- java - 从运行时编译的类调用抽象类的重写方法时出现 AbstractMethodError
- rx-java - RxJava 嵌套 Observables 暴露值
- sql - 按地理距离过滤的简单 SQL 查询非常慢
- oracle - 需要报告 Oracle 12c 数据库中的临时表空间使用情况
- laravel - 使用 apache2 virtualhost 在 laravel 6.4 中调用 api 时出现 404 错误
- bash - 在 Google Colab 中构建 Docker 容器:未知标志 -t
- jquery - Bootstrap 4 - 创建动态轮播
- javascript - 如何使用 javascript 模糊输入字段或做出反应?
- python - 从 2 列创建时间戳