[英]in javascript / jquery how can i parse a string (with inconsistence spaces) into an array
我有一個看起來像這樣的字符串:
1, 2, 4, 4,5, 6
注意:請注意空格中的不一致
將其轉換為整數數組的最佳方法是什么
var s = '1, 2, 4, 4,5, 6 ';
var o = s.trim().split(/ *, */);
( 演示)。首先進行修剪(可能沒有必要),然后使用逗號( ,
)進行分割,並丟棄所有空格( )。
UPDATE
使用jQuery進行迭代轉換為整數( demo ):
var s = '1, 2, 4, 4,5, 6 ';
var a = s.trim().split(/ *, */);
var o = $.map(a, function(elm) {
return parseInt(elm, 10);
});
注意:可以使用簡單的for
循環( demo ):
var s = '1, 2, 4, 4,5, 6 ';
var a = s.trim().split(/ *, */);
var o = [];
for (i = 0, j = a.length; i < j; i++) {
o.push(parseInt(a[i], 10));
};
正則表達式到目前為止在提交的答案中似乎很受歡迎,我想我會添加幾個基於RexExp的解決方案
如果您確實需要整數:
var str = '1, 2, 4, 4,5, 6 ';
var arr = [];
str.replace( /\d+/g, function( i ) {
arr.push( parseInt( i, 10 ) );
});
console.log( arr ); //[1, 2, 4, 4, 5, 6]
如果字符串會做
var str = '1, 2, 4, 4,5, 6 ';
var arr = str.match( /\d+/g );
console.log( arr ) //["1", "2", "4", "4", "5", "6"]
var arr = str.split(/,\\s*/);
嘗試這個:
var inputStr = "1, 2, 4, 4,5, 6 ";
var arrInput = inputStr.split(",");
var arrOutput = new Array();
for(var ctr in arrInput){
arrOutput[ctr] = parseInt(arrInput[ctr].replace(" ",""));
}
var array = [];
var string = "1, 2, 4, 4,5, 6 ";
$(string.replace(/\s+/g, "").split(",")).each(function() {
array.push(parseInt(this));
});
return array;
嘿,只是為了使功能更加完善...將數字字符串轉換為數字的最快方法是一元運算符+。 例如
var nums = ' 1, 2, 4, 4,5, 6 '.replace(/^\s+|\s+$/g,'').split(/\D+/);
var i = nums.length;
while (i--) {
nums[i] = +nums[i];
}
您還可以使用:
nums[i] = nums[i] | 0;
使用它們時,最好將它們轉換為數字。
var str= '1, 2, 4, 4,5, 6 ';
var integerarray= str.match(/\d+/g).map(Number);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.