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