1
如何从JavaScript字符串中获取数字数组? 说我有以下几点:如何从javascript中的字符串中获取数字数组
var slop = "I bought 3 but 8 4.2 of them, mmmmhghrhghrghghrgh456";
你怎么能得到下面的数组:
nums = [3, 8, 4.2, 456];
注:我想不会有可能的话使用jQuery。
如何从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.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"]
+1 - 干得好。 – j08691 2013-03-22 19:45:29
这绝对是太棒了,谢谢。它甚至不会被''你好.45''' – James 2013-03-22 19:47:04
+1性感,非常性感。当我开始想出一个解决方案时,你用快速的忍者技能来了。 – 2013-03-22 19:47:11