當然。我會使用正則表達式來消化。
var stringToParse = 'C_3456_7890';
var returnArray = stringToParse .match(/^([A-Z])_([0-9_]*)$/);
這將在數組的索引1的類別信,並在索引2的數據應該只要類別總是一個大寫字母和指數只有數字和下劃線的工作。如果你讓我知道更多有關可能的選項,我可以更新我的迴應
編輯
,以幫助一個以上的項目列表中,你應該把它拆分的逗號第一
var stringToTest = "A_1234_5678, B_2345_678, C_3456_78"
var arrayOfStrings = stringToTest.split(',')
for (var i = 0; i<arrayOfStrings.length; i++){
var returnArray = arrayOfStrings[i].match(/^\s*([A-Z])_([0-9_]*)\s*$/);
console.log(returnArray);
}
用您需要用來處理數據和類別的任何代碼替換控制檯日誌,您將會很好。
第二編輯
代碼的建議,在循環使用:
if (returnArray[1] == 'C'){
var foundData = returnArray[2];
break;
}
所以完整的代碼會看起來像
var stringToTest = "A_1234_5678, B_2345_678, C_3456_78"
var arrayOfStrings = stringToTest.split(',')
var foundData = false;
for (var i = 0; i<arrayOfStrings.length; i++){
var returnArray = arrayOfStrings[i].match(/^\s*([A-Z])_([0-9_]*)\s*$/);
if (returnArray[1] == 'C'){
foundData = returnArray[2];
break;
}
}
console.log(foundData !== false ? foundData : 'Sorry, no matching index found!')
然後你可以把這個成函數並將所需的類別作爲參數。延伸的功能