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

javascriptweb developmentfront end technology

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

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

在本文中,我们将处理变量 inputString ="abcdefghijklmnopqrstuvwxyz",并旨在每 5 个字符后附加一个"-"字符。有几种方法可以使用 JavaScript 实现此目的,如下所示 -

使用slice() 方法

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

示例

let inputString = "Tutorials Point Simply Easy Learning";
let n = 5; // 指定必须在多少个字符后插入指定字符
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; // 每 5 个字符后插入一个字符
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; // 每 5 个字符后插入一个字符
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)。请记住,在处理大型字符串时,使用更有效的方法可能会在性能方面产生显著差异。


相关文章