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


在 Javascript 中每隔 n 个字符插入特定字符是一个易于理解的概念,它让我们更好地理解 Javascript 的函数。

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

在这篇文章中,我们将处理一个变量 inputString = "abcdefghijklmnopqrstuvwxyz,",并旨在在每 5 个字符后附加一个 "-" 字符。使用 JavaScript 可以通过多种方式实现这一点,如下所示:

利用 slice() 方法

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

示例

Open Compiler
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() 方法用于将特定子字符串或正则表达式匹配项替换为新字符串。该方法接受两个参数:要替换的子字符串或正则表达式以及将替换子字符串或正则表达式匹配项的新字符串,这使我们能够执行复杂的字符串替换。

示例

Open Compiler
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

Learn JavaScript in-depth with real-world projects through our JavaScript certification course. Enroll and become a certified expert to boost your career.

使用 split() 和 reduce()

split() 方法用于将字符串拆分为子字符串数组。此方法采用一个参数,称为分隔符。它用于指定应在何处拆分字符串。

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

示例

Open Compiler
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() 方法用于将两个或多个数组或字符串连接在一起。该方法将一个或多个数组或字符串作为参数,并返回一个包含原始数组或字符串所有元素的新数组或字符串。

示例

Open Compiler
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)。请记住,当处理大型字符串时,使用更高效的方法可能会在性能方面产生重大差异。

更新于:2023 年 3 月 9 日

4K+ 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告