如何在javascript中从字符串中获得数字数组

How to get an array of numbers from a string in javascript

本文关键字:数字 数组 字符串 javascript      更新时间:2023-09-26

如何从javascript字符串中获得数字数组?假设我有以下内容:

var slop = "I bought 3 but 8 4.2 of them, mmmmhghrhghrghghrgh456";

如何得到以下数组:

nums = [3, 8, 4.2, 456];

注意:如果可能的话,我不想使用jQuery

你可以这样做:

var s = "I bought 3 but 8 4.2 of them, mmmmhghrhghrghghrgh456";
var nums = s.split(/[^'d'.]+/).map(parseFloat)
    .filter(function(v){ return v===v });

Result: [3, 8, 4.2, 456]

基本正则表达式获取:

var string = 'I bought 3 but 8 4.2 of them, mmmmhghrhghrghghrgh456 hello.45';
var result = string.match(/((?:'d+'.?'d*)|(?:'.'d+))/g);
console.log(result);
结果:

["3", "8", "4.2", "456", ".45"]

编辑

更新为可以使用无前缀的0。xx小数。如果这不是您想要的,这是旧的正则表达式,将其匹配为(忽略点)完整数字:

var result = string.match(/('d+'.?'d*)/g);
旧的结果:

["3", "8", "4.2", "456", "45"]