如何从 javascript 字符串中获取数字数组?说我有以下内容:
var slop = "I bought 3 but 8 4.2 of them, mmmmhghrhghrghghrgh456";
你怎么能得到以下数组:
nums = [3, 8, 4.2, 456];
注意:如果可能的话,我不想使用 jQuery。
如何从 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.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"]