我有以下的JavaScript字符串varaible:分裂與子組串
var a = "1870|A00,1871|A01";
我想上面的字符串分成以下字符串:
var a1 = 1870,1871
var a2 = A00,A01
對此有何提示?
我有以下的JavaScript字符串varaible:分裂與子組串
var a = "1870|A00,1871|A01";
我想上面的字符串分成以下字符串:
var a1 = 1870,1871
var a2 = A00,A01
對此有何提示?
var a = "1870|A00,1871|A01";
var b = a.split(','); // split on the commas
var a1 = [], a2 = []; // temporary arrays
// foreach of the substrings
for (var i = 0; i < b.length; ++i) {
var c = b[i].split('|'); // split on the pipe char
a1.push(c[0]); // and store the
a2.push(c[1]); // two elements
}
a1 = a1.join(','); // and reconstruct the
a2 = a2.join(','); // two strings
要分割字符串,可以使用Javascript split method。 Split接受你想要分割的分隔符作爲參數,在你的情況下是逗號和管道。它返回在分隔符之前和之後找到的對象數組(它最終是一個數組,其大小比分隔符出現的次數要大)。
要將對象添加到數組中以建立a1和a2,請使用push。 Push將一個對象添加到數組的末尾。
要從兩個數組中分別用逗號分隔字符串,請使用join。連接接受一個數組並返回一個字符串,無論你的參數是分隔每個條目。
var a1 = [];
var a2 = [];
var firstGrouping = a.split(",");
var firstGroupingLength = firstGrouping.length;
for(var i = 0; i < firstGroupingLength; i++) {
var secondGrouping = firstGrouping[i].split("|");
a1.push(secondGrouping[0]);
a2.push(secondGrouping[1]);
}
var a1String = a1.join(',');
var a2String = a2.join(',');
爲了概括上面的代碼,以允許在管周圍分組更多的物品(諸如輸入串var a = "1870|Z26|A00,1871|Z25|A01"
)代替a1和a2考慮被動態構造數組的數組。
不要忘記'加入''a1'和'a2'。 – 2011-04-27 15:58:52
@Alin - 添加了它。 – justkt 2011-04-27 16:03:50
下次嘗試Google時,請使用.split() - http://www.w3schools.com/jsref/jsref_split.asp方法。把你的字符串分割成像這樣的數組。
var a="1870|A00,1871|A01";
var parts = a.split(",");
正確的文檔:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/split – 2011-04-27 16:00:43
var a = "1870|A00,1871|A01"
var splita = a.split(",");
splita[0] = splita[0].split("|");
splita[1] = splita[1].split("|");
var a1 = [splita[0][0], splita[1][0]];
var a2 = [splita[0][1], splita[1][1]];
var a = "1870|A00,1871|A01";
var a1 = a.match(/\d+(?=\|)/g);
var a2 = a.match(/\w\d+(?=,|$)/g);
// a1
// 1870,1871
// a2
// A00,A01
馬克:謝謝,我想完全像這樣。 – user569125 2011-04-27 19:05:27
這可以很容易使用正則表達式替換來實現。
var a1 = a.replace(/\|A[0-9]+/,"");
var a2 = a.replace(/[0-9]+\|/,"");
我還沒有嘗試過的代碼,但它應該工作。
這只是一個[splitting a string](http://stackoverflow.com/questions/96428/how-do-i-split-this-string-with-javascript)兩次,然後[加入一些數組](http://stackoverflow.com/questions/1353579/javascript-array-element-to-string)。不知道它是否重複,但非常接近。 – jball 2011-04-27 16:02:11