如何在JavaScript中获取字符串的两个字符之间的文本?

时间:2015-06-03 12:47:28

标签: javascript

我有一个这样的数组:

var people = [
    '<option value=\'64\'>Tom',
    '<option value=\'76\'>Dan',
];

我循环遍历数组中的每个项目以提取值(如第一项中的数字64)和文本(如第一项中的Tom)。我尝试了多种方法从每个项目中提取这些细节,但我无法做到。我甚至尝试过使用子串和其他方法。有人能告诉我如何提取这些信息吗?

2 个答案:

答案 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);