当我们需要从一个字符串中获取数字时,我们可以使用不同的技术和方法。在这篇文章中,我将介绍一些用于在 JavaScript 中从字符串中提取数字的有效方法。
方法一:使用正则表达式
正则表达式是一种强大的工具,可以用来匹配各种文本模式。在 JavaScript 中,RegExp对象支持创建和使用正则表达式。我们可以使用正则表达式来查找并提取数字。
const str = "Today is April 7th, 2023"; const numArr = str.match(/\d+/g); console.log(numArr); // ["7", "2023"]
在上面的代码中,我们使用了正则表达式\d+
来匹配任何连续数字字符,并使用 match()
方法来获取所有匹配结果作为数组返回。请注意,在此示例中,我们使用了全局标志 g
来查找所有匹配项。
方法二:使用 parseFloat() 和 parseInt()
另一种常见的方法是使用内置的parseFloat()和parseInt()函数。这些函数可以从给定的字符串中解析数字并返回数字值。
const str2 = "The price is $19.99"; const num1 = parseFloat(str2.match(/\d+\.\d+/)); const num2 = parseInt(str2.match(/\d+/)); console.log(num1); // 19.99 console.log(num2); // 19
在上面的代码中,我们首先使用正则表达式匹配数字,然后将其作为参数传递给parseFloat()或parseInt()函数。请注意,parseFloat()可以解析带有小数点的数字,而parseInt()只能返回整数。
方法三:使用split()和filter()
如果我们需要从一个字符串中提取多个数字,可以使用split()方法和filter()方法。
const str3 = "The temperature is 25 degrees celsius and the humidity is 70%"; const numArr2 = str3.split(" ").filter((word) => !isNaN(word)); console.log(numArr2); // ["25", "70"]
在上面的代码中,我们首先使用split()方法将字符串分割为单词数组,然后使用filter()方法筛选出所有不是数字的元素,并返回一个新数组。
结论
以上是一些用于在 JavaScript 中从字符串中提取数字的有效方法。选择合适的方法取决于您的具体需求。您可以根据自己的情况选择最适合您的方法。希望本文对您有所帮助!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/28843