正则表达式仅返回找到的第一个结果

时间:2012-10-25 17:37:35

标签: javascript jquery get

  

可能重复:
  How can I match multiple occurrences with a regex in JavaScript similar to PHP’s preg_match_all()?

我正在尝试解析像这样的xml文档:

var str = data.match("<string>" + "(.*?)" + "</string>");
console.log(str);

我想获取数组中[string]之间的所有元素,但由于某种原因,它只返回找到的第一个string元素。我对正则表达式不好,所以我认为这只是一个小的正则表达式问题。

2 个答案:

答案 0 :(得分:2)

您希望它是全球g

var str="<string>1</string><string>2</string><string>3</string>"; 
var n=str.match(/<string>(.*?)<\/string>/g);
 //1,2,3

答案 1 :(得分:1)

你必须形成RegEx,像

一样添加g

/Regex/g