簡體   English   中英

在javascript / jquery中,如何將字符串(具有不一致的空格)解析為數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM