我有一个这样的数组:
var people = [
'<option value=\'64\'>Tom',
'<option value=\'76\'>Dan',
];
我循环遍历数组中的每个项目以提取值(如第一项中的数字64)和文本(如第一项中的Tom)。我尝试了多种方法从每个项目中提取这些细节,但我无法做到。我甚至尝试过使用子串和其他方法。有人能告诉我如何提取这些信息吗?
答案 0 :(得分:4)
在这种情况下你应该使用正则表达式。
例如:
var things = people.map(function(s){
return s.match(/(\d+)\W+(\w+)$/).slice(1)
});
这构建了这个数组:
[ ["64", "Tom"], ["76", "Dan"] ]
您可能希望根据您的确切需求进行调整:
match
返回的数组,如果某些字符串可能无效请注意,您可能不应该开始使用这样的数组。如果你在服务器端生成它,你应该选择生成一个JSON结构,让客户端脚本从数据构建接口,而不是从既不是干净的数据也不是GUI的东西构建它。
答案 1 :(得分:1)
您可以使用多个拆分:
var str = '<option value=\'64\'>Tom';
var tmpStr = str.split("'");
var number = (tmpStr[1].split("\\"))[0];
var name = (tmpStr[2].split(">"))[1];
document.write(number + " " + name);