JavaScript 中截斷字串
在給定的問題陳述中,我們被要求借助 JavaScript 功能來截斷一個字串。我們可以藉助 JavaScript 的內建函式 slice() 和 substr() 來解決這個問題。
截斷字串是什麼意思?
讓我們瞭解一下截斷字串的含義。
截斷字串是指透過從輸入字串的開頭、結尾或中間部分刪除字元來縮短字串的長度。截斷字串的目的是為了節省一定的空間,或者透過從輸入源中截斷不必要的資訊使其更易於閱讀。
例如,如果我們有一篇長文章的字串,我們可能希望將其縮短到更短的長度,以便它可以輕鬆地適應我們的文章,而不會換行到多行或佔用太多空間。

上述問題的邏輯
讓我們瞭解一下建立上述問題陳述的邏輯
我們必須將給定的輸入字串截斷到函式中給定的特定長度,並在瀏覽器上顯示它。為此,我們將使用 JavaScript 的一些內建函式。
在 JavaScript 中,我們可以使用 slice() 方法和 substr() 方法來截斷字串。slice() 函式返回一個包含原始字串一部分的新字串,並傳遞起始索引和結束索引。而 substring 也類似於 slice() 方法,但此方法指定結束索引,我們指定要提取的子字串的長度。
演算法 - 使用 slice() 方法
步驟 1 - 定義一個名為 str 的字串變數,其中包含長字串。
步驟 2 - 使用上述字串並將此字串傳遞給 slice 方法。起始索引 0 到結束索引 20。此步驟將從第 0 個索引到第 20 個索引截斷給定的字串。
步驟 3 - 在上述步驟中截斷字串後,輸出結果。
示例
// define a string to truncate const str = "I am writing a string to truncate in Javascript"; const truncatedStr = str.slice(0, 20) + "..."; //After truncating the given string console.log(truncatedStr);
輸出
I am writing a strin...
演算法 - 使用 substr() 方法
步驟 1 - 定義一個字串資料型別的變數並將其命名為 str,其中包含長字串。
步驟 2 - 使用上述字串並將此字串傳遞給 substr() 函式,它是 JavaScript 的內建函式。起始索引 0 到結束索引 25。此步驟將從第 0 個索引到第 20 個索引截斷給定的字串。
步驟 3 - 在上述步驟中截斷字串後,輸出結果。
示例
// define long string to truncate const str = "I am using substr() method to truncate in Javascript"; const truncatedStr = str.substr(0, 25) + "..."; //After truncating the given string console.log(truncatedStr);
輸出
I am using substr() metho...
演算法
步驟 1 - 定義一個名為 str 的字串變數,其中包含長字串。
步驟 2 - 使用上述字串並將此字串傳遞給 replace() 函式,它是 JavaScript 的內建函式。它使用正則表示式將字串截斷到索引 20。
步驟 3 - 在上述步驟中截斷字串後,輸出結果。
示例
//define string to truncate
const str = "This is a long string that needs to be truncated";
const truncatedStr = str.replace(/^(.{20}[^\s]*).*/, "$1...");
//after truncating the given string
console.log(truncatedStr);
輸出
This is a long string...
複雜度
上述定義的方法 slice()、substr() 和 replace 的時間複雜度為 O(n)。這裡 n 是輸入原始字串的大小。這種複雜度的原因是這些方法迭代字串中的字元,並透過複製選定的字元來建立一個新的子字串。
而正則表示式方法的時間複雜度為 O(k),其中 k 是與正則表示式模式匹配的字元數。在第三個程式碼中,正則表示式匹配字串的前 20 個字元。
結論
在此程式碼中,我們使用 JavaScript 中的內建函式實現了不同型別的演算法。我們可以在這裡記下,出於實際目的,對於大多數合理長度的字串,這些方法之間的效能差異可能可以忽略不計。要使用的方法的選擇可以取決於程式碼的可讀性和可維護性等因素。
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP