价值是这样的:12 23 345 3454 21
。
我需要从中获取数字并存储到数组中,以便我的数组看起来像
values = new Array(12,23,345,3454,21);
。
我的问题是我可以移除空格,但它是1223345345421
。
答案 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
请注意,这更适合您尝试提取的模式,这可能适合或不适合。您只能获得匹配的模式,因此不会返回任何插入的不匹配(包括空格)。