首頁 >web前端 >js教程 >JavaScript 中每 n 個字元後插入一個字符

JavaScript 中每 n 個字元後插入一個字符

WBOY
WBOY轉載
2023-08-24 13:37:131221瀏覽

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

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)。請記住,在處理大型字串時,使用更有效的方法可能會在效能方面產生顯著差異。

以上是JavaScript 中每 n 個字元後插入一個字符的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除