我可以使用.match()来匹配文本出现的多个地方吗?

时间:2012-12-25 20:27:02

标签: php javascript regex

可以像PHP中的preg_match_all一样使用.match()来捕获文本与模式匹配的文本中的几个位置吗?

现在我必须测试:

<div>
    <span>
    one something 1 $2502
    </span><br />

    <span>
        one something 2
    </span><br />

    <span>
        one something 3 $25102
    </span><br />
</div>

我使用以下模式:/>([^<>]*\$\s*(\d+\.?\d+)[^<>]*)</但结果始终是第一个范围。

 var priceArr = completetext.match(/>([^<>]*\$\s*(\d+\.?\d+)[^<>]*)</);
 alert(priceArr );

1 个答案:

答案 0 :(得分:0)

var match = []; 
match[0] = [];
match[1] = [];
match[2] = [];

'YOUR TEXT'.replace(/>([^<>]*\$\s*(\d+\.?\d+)[^<>]*)</ig, function() {
  match[0].push(arguments[0]); 
  match[1].push(arguments[1]);
  match[2].push(arguments[2]);

  return arguments[0];
}); 

你得到变量匹配的结果 - console.log(匹配)

http://jsfiddle.net/SkXCG/