2012-06-20 62 views
0

數值類似於:12 23 345 3454 21從空白中提取數字

我需要從中取出數字並存儲到數組中,以便我的數組看起來像 values = new Array(12,23,345,3454,21);

我的問題是我可以刪除空格,但它來作爲1223345345421

回答

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提到,修剪()可能不在IE9中工作,因此您可以使用include one of these solutions向IE9添加trim()功能。或者只是將trim()替換爲replace(/^\s+|\s+$/g, '')。任一解決方案都可以作爲解決跨瀏覽器兼容性的解決方案。

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

要小心。 'trim'在IE9下不工作。 –

+2

爲了節省以後將元素轉換爲數字,可以將以下內容添加到解決方案的末尾:.map(function(val){return parseInt(val,10);}) – Jules

1

作爲替代拆分,可以使用匹配:

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

請注意,這是更具體到你試圖提取的模式,這可能適合或不適合。您只會獲得匹配的模式,因此不會返回任何介入的非匹配(包括空格)。