簡體   English   中英

從Java腳本中的逗號分隔字符串獲取所有值

[英]Getting All Values from Comma Separated String in Javascript

我在JavaScript中有1個String變量,其中包含3個逗號分隔的值,如下所示:

var session = "mick@yahoo.com,123456,f_id=8";

我想在3個不同的變量中獲得3個以上逗號分隔的值。 到目前為止,我已經實現的是在elem2變量中獲取最后一個逗號分隔值,並在elem1變量中獲取其他兩個逗號分隔值第一和第二個值。

var elem1 = session.split(",");

var elem2 = elem1.pop();

document.write("elem1 = "+elem1+"<br/>elem2 = "+elem2);

所以我的程序無法正常運行,請使用快速解決方案,以便使用另一個變量elem3,然后在瀏覽器中獲取以下輸出:

elem1 = mick@yahoo.com
elem2 = 123456
elem3 = f_id=8 

您可以嘗試以下方法:

// Initially, we split are comma separated string value on commas.
// In the values an array of these values is stored.
var values = session.split(",");
// Then we get each value based on it's position in the array.
var email = values[0];
var number = values[1];
var id = values[2];

作為附帶說明,我建議您為變量使用有意義的名稱,就像上面的那樣。 名稱elem1elem2elem3有點含糊,將來,這些命名甚至都可能使您難以理解,更不用說代碼的另一個讀者了。

您還可以將會話數據存儲在JavaScript對象中 下面遍歷每個拆分的字符串,並將其添加到Object。

var myData = {};

// ...

for(var i = 0, x = session.split(","); i < x.length; i++) {
    switch(i) {
        case 0: myData.email = x[i]; break;
        case 1: myData.number = x[i]; break;
        case 2: myData.f_id = x[i]; break;
    }
}

如果要處理多個數據值,最好像這樣制作一個對象數組。

var myData = [];

// ...

myData.push({
    email: x[0],
    number: x[1],
    f_id: x[2]
});

等等。 這是JSON符號的一種形式。 輸出如下所示:

[
    {
        email: "mick@yahoo.com",
        number: "123456",
        f_id: "f_id=8"
    },
    {
        // Another session, etc.
    }
]

您也可以將string.replace與回調一起用作參數。 非常靈活!

檢查此以獲得更多信息: https : //developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/replace

對於您的用例,您可能最終得到:

function writeParts(match, email, number, id, offset, string) {
    document.write("email = "+email+"<br/>number = "+number);
}
// match not-comma followed by a comma (three times)
session.replace(/([^,]+),([^,]+),([^,]+)/, writeParts);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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