从空格中提取数字

Aja*_*.14 0 javascript regex

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

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

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

nha*_*tdh 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"]
Run Code Online (Sandbox Code Playgroud)

编辑

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

.replace(/^\s+|\s+$/g, '').split(/\s+/)
Run Code Online (Sandbox Code Playgroud)

  • 小心.在IE9下,`trim`不起作用. (2认同)
  • 为了节省以后必须将元素转换为数字,您可以在解决方案的末尾添加以下内容:.map(function(val){return parseInt(val,10);}) (2认同)