在 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)。請記住,當處理大型字串時,使用更高效的方法可能會在效能方面產生重大差異。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP