2010-12-08 10 views
1

2つに一致するので、いくつかの一致を取得しようとしています。今はconsole.log()から取得しています。多くの一致を返します

<script type="text/javascript"> 

var page = 
'<tr class="Row">' + 
    '<td class="1"><p>12/31/2010</p></td>'+ 
    '<td class="2">'+ 
       '<p>text</p>'+ 
    '</td>'+ 
'</tr>'+ 
'<tr class="Row">' + 
    '<td class="1"><p>12/01/2009</p></td>'+ 
    '<td class="2">'+ 
       '<p>text</p>'+ 
    '</td>'+ 
'</tr>' 
; 

var pattern = /<td class="1"><p>((\d){2}(?=\/)\/(\d){2}(?=\/)\/20(\d){2})<\/p><\/td>/; 
var match = page.match(pattern); 
console.log(page); 
console.log(match); 

</script> 

すべての一致を取得する方法はありますか?

答えて

0

私はパターンの終わりにg修飾子とJavaScriptで正規表現のための.exec()を使用する傾向があります。その後、matchがnullになるまで、この複数回呼び出すことで一致を反復処理することができます。

var pattern = /<td class="1"><p>((\d){2}(?=\/)\/(\d){2}(?=\/)\/20(\d){2})<\/p><\/td>/g; 
var match = pattern.exec(page); 
console.log(page); 

while(match){ 
    console.log(match); 
    match = pattern.exec(page); 
} 

は、この作業を参照してください:http://jsfiddle.net/jonathon/EtpQp/

+0

これは私が探している答えです。 –

3

オプションを使用してください。

pattern = /.../gm; 
+0

ことに問題があります。それはマッチ[1]を取り除きます。 2010年12月31日の日付であったはずです。 –

+0

+1あなたのためにピンチ –

関連する問題