从空格中提取数字

时间:2012-06-20 02:06:51

标签: javascript regex

价值是这样的:12 23 345 3454 21

我需要从中获取数字并存储到数组中,以便我的数组看起来像 values = new Array(12,23,345,3454,21);

我的问题是我可以移除空格,但它是1223345345421

3 个答案:

答案 0 :(得分:7)

您可以使用split(" ")沿着空格分割字符串。

为了更加彻底,您应该修剪前导和尾随空格,并沿多个空格字符分割:

> var numbers_in_string = "   12   23 345 3454    21    ";
> var numbers_in_array = numbers_in_string.trim().split(/\s+/);
> console.log(numbers_in_arrays)
["12", "23", "345", "3454", "21"]

修改

正如@Sangdol所提到的,trim()可能在IE9中不起作用,因此您可以使用include one of these solutions向IE9添加trim()功能。或者只需将trim()替换为replace(/^\s+|\s+$/g, '')。这两种解决方案都可以作为跨浏览器兼容性的解决方案。

.replace(/^\s+|\s+$/g, '').split(/\s+/)

答案 1 :(得分:2)

如果它的模式相同,您可以使用split()

var arr = '12 23 345 3454 21'.split(' ');
console.log(arr); // [12, 23, 345, 3454, 21]

<强>文档:

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/split

答案 2 :(得分:1)

作为拆分的替代方法,您可以使用match:

' 12 23   345   3454   21 '.match(/\d+/g); //12,23,345,3454,21

请注意,这更适合您尝试提取的模式,这可能适合或不适合。您只能获得匹配的模式,因此不会返回任何插入的不匹配(包括空格)。