在 JavaScript 中每 N 个字符后插入一个字符
Insert a Character after every N Characters in JavaScript
要在每 N 个字符后插入一个字符,请对replace()
字符串调用该方法,将以下正则表达式传递给它
str.replace(/.{2}/g, '$&c')
。
该replace
方法将每 2 个字符替换为字符加上提供的替换。
const str = 'ababab'; const result = str.replace(/.{2}/g, '$&c'); console.log(result); // 👉️ "abcabcabc"
String.replace
()
方法返回一个新字符串,其中一个、一些或所有正则表达式的匹配项被替换为提供的替换项。
该方法采用以下参数:
姓名 | 描述 |
---|---|
图案 | 要在字符串中查找的模式。可以是字符串或正则表达式。 |
替代品 | 用于通过提供的模式替换子字符串匹配的字符串。 |
让我们从第二个参数开始——替换。
替换字符串可以包含
特殊的替换模式。
$&
特殊模式插入匹配的子字符串,我们向其添加了字符c
。const str = 'ababab'; const result = str.replace(/.{2}/g, '$&c'); console.log(result); // 👉️ "abcabcabc"
如果我们ab
使用 匹配和替换匹配项$&c
,我们实际上是用 替换
ab
了abc
。
我们传递给该方法的第一个参数replace
是正则表达式。
正斜杠标记/ /
正则表达式的开始和结束。
点.
是一个特殊字符,匹配任何单个字符。
我们使用g
(global) 标志是因为我们想要匹配任何
2
字符的所有出现而不仅仅是第一次出现。
该方法用字符加字符replace
替换每个2
字符,允许我们在字符串中的每个字符后插入一个字符。2
c
2
使用 reduce 在每 N 个字符后插入一个字符
这是一个四步过程:
- 将字符串拆分为数组。
- 使用该
reduce()
方法遍历数组。 - 检查索引除以 N 的余数是否等于
1
。 - 如果满足条件,则将字符添加到字符串的末尾。
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()
方法将字符串拆分为字符数组。
// 👇️ ['a', 'b' ,'a' ,'b'] console.log('abab'.split(''))
我们传递给Array.reduce方法的函数
会为数组中的每个元素调用。
accumulator
是一个空字符串,因为这是我们提供给方法的第二个参数。如果将当前迭代的索引除以 N 返回 的余数1
,则我们必须插入该字符。
否则,我们将当前迭代的字母添加到累积的字符串中并返回结果。
我们从回调函数返回的值将作为accumulator
下一次迭代传递。
在每 N 个字符后插入一个字符match
您也可以使用该match
方法在每 N 个字符后插入一个字符。
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
const str = 'ababab'; const matches = str.match(/.{1,2}/g); console.log(matches); // 👉️ [ 'ab', 'ab', 'ab' ]
一旦我们得到一个匹配数组,我们就将它们与我们想要插入的字符连接起来作为分隔符。
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
参数设置为空字符串,则数组元素之间没有任何字符连接。
额外资源
您可以通过查看以下教程来了解有关相关主题的更多信息: