当前位置:首页 > JavaScript

js原生实现split

2026-04-07 16:35:35JavaScript

原生 JavaScript 实现 split 方法

JavaScript 的 split 方法用于将字符串分割成数组,可以通过原生代码模拟其功能。以下是实现思路和代码示例:

基础实现

原生 split 的核心逻辑是遍历字符串,根据分隔符拆分并收集子字符串。

function customSplit(str, separator, limit) {
  const result = [];
  let current = '';
  let count = 0;

  for (let i = 0; i < str.length; i++) {
    const char = str[i];
    if (char === separator) {
      if (current !== '') {
        result.push(current);
        current = '';
        count++;
        if (limit && count >= limit) break;
      }
    } else {
      current += char;
    }
  }

  if (current !== '') {
    result.push(current);
  }

  return result;
}

处理正则表达式分隔符

如果需要支持正则表达式作为分隔符,可以使用 RegExp 进行匹配:

function customSplit(str, separator, limit) {
  const result = [];
  let lastIndex = 0;
  let count = 0;
  const regex = new RegExp(separator);

  while (true) {
    const match = regex.exec(str.slice(lastIndex));
    if (!match) break;

    const matchedText = match[0];
    const matchIndex = match.index + lastIndex;
    result.push(str.slice(lastIndex, matchIndex));
    lastIndex = matchIndex + matchedText.length;
    count++;

    if (limit && count >= limit) break;
  }

  result.push(str.slice(lastIndex));
  return result;
}

边界条件处理

需要考虑空字符串、无分隔符等情况:

js原生实现split

function customSplit(str, separator, limit) {
  if (str === '') return [''];

  const result = [];
  if (separator === undefined) return [str];

  // 其他逻辑...
}

使用示例

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

此实现覆盖了基本的分割功能,但原生 split 的完整实现还包括更多边界条件和功能细节,如 Unicode 字符处理、捕获组等。

标签: jssplit
分享给朋友:

相关文章

jquery.js

jquery.js

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

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

js画图实现

js画图实现

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

js实现代码雨

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <…

js实现跑马灯

js实现跑马灯

实现跑马灯效果 使用HTML和JavaScript可以轻松实现跑马灯效果。以下是两种常见的实现方式: HTML结构 <div id="marquee"> <span>…

js实现图片

js实现图片

图片加载与显示 在JavaScript中,可以通过Image对象动态加载图片。创建实例后设置src属性触发加载,通过onload回调处理加载完成后的操作: const img = new Ima…