Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中从字符串中获取数字数组_Javascript - Fatal编程技术网

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

如何在javascript中从字符串中获取数字数组,javascript,Javascript,如何从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.spli

如何从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 });
结果:[3,8,4.2456]

您可以这样做:

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 });
结果:[3,8,4.2456]

基本正则表达式获取:

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"]
基本正则表达式获取:

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"]