在 JavaScript 中從字串中提取數字
在給定的問題中,我們需要藉助 JavaScript 功能從給定的字串中找出數字。因此,我們將使用正則表示式和一些 JavaScript 的預定義函式。
理解問題
手頭的問題是在 JavaScript 中從給定的字串中查詢數字。此任務有時可能很有用。為了完成此任務,我們將使用正則表示式以及一些 JavaScript 的字串操作函式。所以簡單來說,我們將得到一個字串,在這個字串中可能存在一些整數或其他型別的數字。因此,我們的任務是從字串中找出這些數字,並將它們顯示在單獨的陣列中作為結果。例如,假設我們有一個字串“我 25 歲”,那麼在這個字串中存在一個數字 25。因此,我們將從字串中提取該數字。
給定問題的邏輯
為了解決給定的問題,從給定的字串中提取數字,我們將使用基本的搜尋技術。因此,邏輯將涉及在給定的字串中搜索數字模式。為了搜尋,我們將使用正則表示式,這是一種強大的工具,無論何時我們必須匹配任何模式。它允許我們找到確切的模式並提取數字。
演算法
步驟 1:我們的任務是從給定的字串中查詢數字。為了解決這個問題,我們將定義一個名為 extractNumbers 的函式,在這個函式中,我們將採用 inputString 作為引數。因此,此 inputString 將包含數字。
步驟 2:現在我們已經定義了一個函式,所以在函式內部我們將定義一個正則表示式模式,這是我們演算法的主要屬性。因為我們必須匹配數值。
步驟 3:之後,我們將使用 JavaScript 的預定義方法 match。在這種方法中,正則表示式模式用於獲取給定字串中所有數字的出現次數。所以基本上,此方法將返回一個匹配陣列。
步驟 4:獲得匹配項後,我們的下一個任務是將匹配值從字串轉換為數字(如果需要)。
步驟 5:最後,我們將返回提取的數字陣列。
示例
// Function to extract number from the string
function extractNumbers(inputString) {
const regex = /(\d+(\.\d+)?)/g;
const matches = inputString.match(regex);
const numbers = matches.map(Number);
return numbers;
}
const inputString = "The string contains numbers 123 and 45.6";
const extractedNumbers = extractNumbers(inputString);
console.log(extractedNumbers);
輸出
[123, 45.6]
複雜度
上面程式碼的時間複雜度取決於輸入字串的大小和給定字串中數字的數量。所以假設 n 表示輸入字串的大小。時間複雜度將被視為 O(n)。因為我們遍歷字串一次以查詢所有匹配項。空間複雜度為 O(m),其中 m 是在字串中找到的數字的數量。
結論
因此,對於給定的從給定字串中查詢數字的問題,解決方案非常簡單。因為我們使用了正則表示式和一些 JavaScript 字串操作技術。藉助正則表示式,我們能夠匹配數值,並且能夠成功地提取出數字。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP