首页 > 文章列表 > JavaScript 中每 n 个字符后插入一个字符

JavaScript 中每 n 个字符后插入一个字符

386 2023-09-17

Javascript中每n个字符后插入一个特定字符是一个很容易理解的概念,可以让我们更好地理解Javascript的功能。

这里n可以是从1到小于字符串长度的任何整数。

在本文中,我们将处理变量 inputString = "abcdefghijklmnopqrstuvwxyz",并旨在每 5 个字符后附加一个“-”字符。有多种方法可以使用 JavaScript 来完成此操作,如下所示 -

使用 slice() 方法

在 JavaScript 中,slice() 函数用于提取给定字符串的一部分并返回一个新字符串。该方法接受两个参数:要提取的子字符串的起始索引和结束索引。子字符串包含起始索引,但不包含终止索引。

示例

let inputString = "Tutorials Point Simply Easy Learning";
let n = 5; // specify after how many characters does the specified character have to be inserted
let insertChar = "-";
let outputString = "";
for (let i = 0; i < inputString.length; i += n) {
   let slice = inputString.slice(i, i + n);
   if(slice.length==n)
      outputString += slice + insertChar;
   else
      outputString += slice;
}
console.log(outputString);

输出

Tutor-ials -Point- Simp-ly Ea-sy Le-arnin-g

将replace()方法与正则表达式结合使用

在 JavaScript 中,replace() 方法用于将特定子字符串或正则表达式匹配替换为新字符串。该方法接受两个参数:要替换的子字符串或正则表达式以及将替换子字符串或正则表达式匹配的新字符串,这使我们能够执行复杂的字符串替换。

示例

let inputString = "Tutorials Point Simply Easy Learning";
let n = 5;
let insertChar = "-";
let outputString = inputString.replace(new RegExp(`.{${n}}`, 'g'), '$&' +
insertChar);
console.log(outputString);

输出

Tutor-ials -Point- Simp-ly Ea-sy Le-arnin-g

使用split()和reduce()

split()方法用于将字符串拆分为子字符串数组。此方法采用一个称为分隔符的参数。它用于指定字符串的分割点。

reduce()方法是一个高阶函数。它的目的是将数组处理并减少为单个值。该方法接受两个参数,即回调函数和可选的初始值。回调函数应用于数组中的每个元素,并且函数的返回值作为累加器传递到下一次迭代。函数的最终返回值是减少的值。它们可以一起使用以在每 n 个字符后插入一个字符。

示例

let inputString = "Tutorials Point Simply Easy Learning";
let n = 5; // insert a character after every 5 characters
let insertChar = "-";
let outputString = inputString.split("").reduce(function(acc, val, i) {
   return i % n === 0 && i !== 0 ? acc + insertChar + val : acc + val;
}, "");
console.log(outputString);

输出

Tutor-ials -Point- Simp-ly Ea-sy Le-arnin-g

使用 substr() 和 concat()

JavaScript 中的 substr() 方法用于从给定字符串中提取子字符串,从指定索引开始,持续指定字符数。该方法有两个参数:起始索引和子字符串中包含的字符数。

JavaScript 中的 concat() 方法用于将两个或多个数组或字符串连接在一起。该方法接受一个或多个数组或字符串作为参数,并返回一个新的数组或字符串,其中包含原始数组或字符串的所有元素。

示例

let inputString = "abcdefghijklmnopqrstuvwxyz";
let n = 5; // insert a character after every 5 characters
let insertChar = "-";
let outputString = "";
for (let i = 0; i < inputString.length; i += n) {
   let slice = inputString.substr(i, n);
   if(slice.length==n)
      outputString = outputString.concat(slice, insertChar);
   else
      outputString = outputString.concat(slice);
}
console.log(outputString);

输出

abcde-fghij-klmno-pqrst-uvwxy-z

结论

JavaScript 中有多种在字符串中每 n 个字符后插入一个字符的方法,例如使用 slice() 方法结合 for 循环、replace() 方法结合正则表达式、split() 和 join () 方法、substr() 和 concat() 方法等。您选择的具体方法将取决于您的用例的要求以及您个人对代码可读性和可维护性的偏好。很高兴知道所有这些方法都具有线性时间复杂度 O(n)。请记住,在处理大型字符串时,使用更有效的方法可能会在性能方面产生显着差异。