当然。我建议使用正则表达式。
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!')
然后您可以将其放入一个函数中,并将所需的类别作为参数。扩展功能