在 JavaScript 中从字符串中挑选数字
在给定的问题中,我们需要借助 Javascript 功能从给定的字符串中找出数字。因此,我们将使用正则表达式和一些预定义的 Javascript 函数。
理解问题
当前的问题是从给定的 Javascript 字符串中找出数字。这项任务有时很有用。为了完成这项任务,我们将使用正则表达式以及一些 Javascript 字符串操作函数。简单来说,我们将得到一个字符串,在这个字符串中可能会出现一些整数或其他类型的数字。所以我们的任务是从字符串中找出这些数字,并将它们显示在单独的数组中。例如,假设我们有一个字符串"我 25 岁",因此在这个字符串中有一个数字 25。所以我们将从字符串中提取这个数字。
给定问题的逻辑
为了解决给定问题,从给定的字符串中提取数字,我们基本上将使用搜索技术。因此,逻辑将涉及在给定的字符串中搜索数字模式。对于搜索,我们将使用正则表达式,每当我们必须匹配任何模式时,它都是一个强大的工具。它允许我们找到确切的模式并提取数字。
算法
步骤 1:因为我们的任务是从给定的字符串中找到数字。为了解决这个问题,我们将定义一个名为 extractNumbers 的函数,在这个函数中,我们将接受一个参数作为 inputString。所以这个 inputString 将包含数字。
步骤 2:现在我们已经定义了一个函数,因此在函数内部我们将定义一个正则表达式模式,这是我们算法的主要属性。因为我们必须匹配数字值。
步骤 3:之后我们将使用 Javascript 的预定义方法 match。在此方法中,正则表达式模式从给定的字符串中获取所有出现的数字。因此基本上此方法将返回一个匹配数组。
步骤 4:获得匹配项后,我们的下一个任务是将匹配的值从字符串转换为数字(如果需要)。
步骤 5:最后我们将返回提取的数字数组。
示例
// 从字符串中提取数字的函数
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 的字符串操作技术。借助正则表达式,我们能够匹配数值,并且能够成功挑选出数字。
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

