0

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

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

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

4

3 回答 3

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 中不起作用,因此您可以使用包含这些解决方案之一来将 trim() 功能添加到 IE9。或者只是替换trim()replace(/^\s+|\s+$/g, ''). 这两种解决方案都可以作为跨浏览器兼容性的解决方法。

.replace(/^\s+|\s+$/g, '').split(/\s+/)
于 2012-06-20T02:08:23.253 回答
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

于 2012-06-20T02:09:15.757 回答
1

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

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

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

于 2012-06-20T03:40:44.157 回答