在 JavaScript 中每 N 个字符后插入一个字符

在 JavaScript 中每 N 个字符后插入一个字符

Insert a Character after every N Characters in JavaScript

要在每 N 个字符后插入一个字符,请对replace()字符串调用该方法,将以下正则表达式传递给它
str.replace(/.{2}/g, '$&c')

replace方法将每 2 个字符替换为字符加上提供的替换。

索引.js
const str = 'ababab'; const result = str.replace(/.{2}/g, '$&c'); console.log(result); // 👉️ "abcabcabc"

String.replace
()
方法返回一个新字符串,其中一个、一些或所有正则表达式的匹配项被替换为提供的替换项。

该方法采用以下参数:

姓名 描述
图案 要在字符串中查找的模式。可以是字符串或正则表达式。
替代品 用于通过提供的模式替换子字符串匹配的字符串。

让我们从第二个参数开始——替换。

替换字符串可以包含
特殊的替换模式

在示例中,$&特殊模式插入匹配的子字符串,我们向其添加了字符c
索引.js
const str = 'ababab'; const result = str.replace(/.{2}/g, '$&c'); console.log(result); // 👉️ "abcabcabc"

如果我们ab使用 匹配和替换匹配项$&c,我们实际上是用 替换
ababc

我们传递给该方法的第一个参数replace是正则表达式。

正斜杠标记/ /正则表达式的开始和结束。

.是一个特殊字符,匹配任何单个字符。

花括号恰好匹配前一个字符的 N 次出现(点,匹配任何单个字符)。

我们使用g(global) 标志是因为我们想要匹配任何
2字符的所有出现而不仅仅是第一次出现。

该方法用字符加字符replace替换每个2字符,允许我们在字符串中的每个字符后插入一个字符。2c2

使用 reduce 在每 N 个字符后插入一个字符

这是一个四步过程:

  1. 将字符串拆分为数组。
  2. 使用该reduce()方法遍历数组。
  3. 检查索引除以 N 的余数是否等于1
  4. 如果满足条件,则将字符添加到字符串的末尾。
索引.js
function insertAfterEveryN(str, char, n) { const result = str.split('').reduce((accumulator, current, index) => { if (index % n === 1) { return accumulator + current + char; } return accumulator + current; }, ''); return result; } // 👇️ "abcabcabc" console.log(insertAfterEveryN('ababab', 'c', 2));

第一步是使用
String.split()
方法将字符串拆分为字符数组。

索引.js
// 👇️ ['a', 'b' ,'a' ,'b'] console.log('abab'.split(''))

我们传递给Array.reduce方法的函数
会为数组中的每个元素调用。

变量的初始值accumulator是一个空字符串,因为这是我们提供给方法的第二个参数。

如果将当前迭代的索引除以 N 返回 的余数1,则我们必须插入该字符。

否则,我们将当前迭代的字母添加到累积的字符串中并返回结果。

我们从回调函数返回的值将作为accumulator
下一次迭代传递。

在每 N 个字符后插入一个字符match

您也可以使用该match方法在每 N 个字符后插入一个字符。

索引.js
const str = 'ababab'; const matches = str.match(/.{1,2}/g); console.log(matches); // 👉️ [ 'ab', 'ab', 'ab' ] const result = matches.join('c'); console.log(result); // 👉️ abcabcab

String.match方法字符串与正则表达式进行匹配。

该方法返回一个包含匹配项(如果有)或未null找到匹配项的数组。

正斜杠标记/ /正则表达式的开始和结束。

.是一个特殊字符,匹配任何单个字符。

语法{n,m}至少匹配前面的项目(任何字符)的n大部分出现。m

索引.js
const str = 'ababab'; const matches = str.match(/.{1,2}/g); console.log(matches); // 👉️ [ 'ab', 'ab', 'ab' ]

一旦我们得到一个匹配数组,我们就将它们与我们想要插入的字符连接起来作为分隔符。

索引.js
const str = 'ababab'; const matches = str.match(/.{1,2}/g); console.log(matches); // 👉️ [ 'ab', 'ab', 'ab' ] const result = matches.join('c'); console.log(result); // 👉️ abcabcab

Array.join ()方法使用分隔符连接数组中的所有元素。

该方法采用的唯一参数Array.join()separator– 用于分隔数组元素的字符串。

separator如果省略参数值,则数组元素用逗号连接,

如果separator参数设置为空字符串,则数组元素之间没有任何字符连接。

额外资源

您可以通过查看以下教程来了解有关相关主题的更多信息: