Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从空白中提取数字_Javascript_Regex - Fatal编程技术网

Javascript 从空白中提取数字

Javascript 从空白中提取数字,javascript,regex,Javascript,Regex,值是这样的:12 23 345 3454 21 我需要从中获取数字并存储到数组中,这样我的数组看起来应该像 values=新数组(12,233453454,21) 我的问题是我可以删除空格,但它是1223345345421您可以使用split(“”沿空格分割字符串 为了更彻底,您应该修剪前导和尾随空格,并沿多个空格字符拆分: > var numbers_in_string = " 12 23 345 3454 21 "; > var numbers_in_arra

值是这样的:
12 23 345 3454 21

我需要从中获取数字并存储到数组中,这样我的数组看起来应该像
values=新数组(12,233453454,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中不起作用,因此您可以使用include将trim()功能添加到IE9中。或者只需将
trim()
替换为
replace(/^\s+$/g.)
。这两种解决方案都可以作为跨浏览器兼容性的解决方案

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

如果是相同的模式,则可以使用
split()

文档:


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

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

请注意,这更具体于您试图提取的模式,可能适合,也可能不适合。您只能获得匹配的模式,以便不返回任何中间的非匹配项(包括空格)。

为了避免以后将元素转换为数字,您可以在解决方案的末尾添加以下内容:.map(函数(val){return parseInt(val,10);})
' 12 23   345   3454   21 '.match(/\d+/g); //12,23,345,3454,21