2012-10-25 54 views
0

可能重複:
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

你希望它是全球g

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

完美地工作!我知道這將會是那樣的小事。 chears :) –

+0

g實際上代表全球。貪婪(+ vs.?)具有不同的含義。 – Christophe

+0

@Christophe,ops,mybad –

1

你必須形成正則表達式添加g到它像

/Regex/g