值是这样的:12 23 345 3454 21
.
我需要从中获取数字并存储到数组中,所以我的数组应该看起来像
values = new Array(12,23,345,3454,21);
.
我的问题是我可以删除空格,但它是1223345345421
.
值是这样的:12 23 345 3454 21
.
我需要从中获取数字并存储到数组中,所以我的数组应该看起来像
values = new Array(12,23,345,3454,21);
.
我的问题是我可以删除空格,但它是1223345345421
.
您可以使用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+/)
如果它是相同的模式,你可以使用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
作为拆分的替代方法,您可以使用匹配:
' 12 23 345 3454 21 '.match(/\d+/g); //12,23,345,3454,21
请注意,这更特定于您尝试提取的模式,可能适合或不适合。您只会获得匹配的模式,因此不会返回任何介入的不匹配(包括空格)。