數值類似於: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提到,修剪()可能不在IE9中工作,因此您可以使用include one of these solutions向IE9添加trim()功能。或者只是將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
請注意,這是更具體到你試圖提取的模式,這可能適合或不適合。您只會獲得匹配的模式,因此不會返回任何介入的非匹配(包括空格)。
要小心。 'trim'在IE9下不工作。 –
爲了節省以後將元素轉換爲數字,可以將以下內容添加到解決方案的末尾:.map(function(val){return parseInt(val,10);}) – Jules