当前位置:首页 > JavaScript

js原生实现split

2026-03-15 23:12:50JavaScript

js原生实现split

js原生实现split

原生 JavaScript 实现 split 方法

使用原生 JavaScript 实现 split 方法需要处理字符串分割逻辑,包括分隔符匹配、结果数组构建以及可选的长度限制。以下是两种实现方式:

基础实现(不考虑正则分隔符)

function customSplit(str, separator, limit) {
  const result = [];
  if (separator === undefined) return [str];

  let startIndex = 0;
  for (let i = 0; i < str.length; i++) {
    if (str.substr(i, separator.length) === separator) {
      result.push(str.substring(startIndex, i));
      startIndex = i + separator.length;
      i += separator.length - 1;
    }
  }
  result.push(str.substring(startIndex));

  return limit ? result.slice(0, limit) : result;
}

完整实现(支持正则分隔符)

function customSplit(str, separator, limit) {
  const output = [];
  let lastIndex = 0;

  if (separator === undefined) return [str];
  if (separator === '') return Array.from(str);

  const regex = new RegExp(separator, 'g');
  let match;

  while ((match = regex.exec(str)) !== null) {
    output.push(str.slice(lastIndex, match.index));
    lastIndex = match.index + match[0].length;
    if (limit && output.length >= limit) break;
  }

  output.push(str.slice(lastIndex));
  return limit ? output.slice(0, limit) : output;
}

关键特性说明

  • 空字符串处理:当分隔符为空字符串时,将字符串拆分为单字符数组
  • undefined 处理:未提供分隔符时返回包含原字符串的数组
  • 正则支持:第二个实现版本支持正则表达式作为分隔符
  • limit 参数:限制返回数组的最大长度

使用示例

console.log(customSplit('a-b-c', '-')); // ['a', 'b', 'c']
console.log(customSplit('a-b-c', '-', 2)); // ['a', 'b']
console.log(customSplit('abc', '')); // ['a', 'b', 'c']
console.log(customSplit('a,b,c', /[,]/)); // ['a', 'b', 'c']

这两个实现分别展示了基础版本和完整版本的原生 split 方法实现,可根据实际需求选择使用。

标签: jssplit
分享给朋友:

相关文章

js实现验证码

js实现验证码

实现验证码的JavaScript方法 生成随机验证码 使用Math.random()生成随机字符串,结合数字和字母: function generateCaptcha() { const cha…

jquery.js

jquery.js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它的设计宗旨是“Write Less, Do Mor…

js实现vue

js实现vue

Vue.js 简介 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心库专注于视图层,易于与其他库或现有项目整合。 实现 Vue.js 的基本步骤 安装 Vue.j…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

js实现防洪

js实现防洪

防抖(Debounce)实现 防抖的核心思想是在事件触发后延迟执行回调函数,若在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口调整等场景。 function debounce(f…

js画图实现

js画图实现

使用Canvas API绘制图形 Canvas是HTML5提供的绘图API,通过JavaScript操作Canvas元素可以绘制各种图形。以下是一个简单的示例: <canvas id="myC…