0

可以像preg_match_all在 php 中那样使用 .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 );
4

1 回答 1

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(match)

http://jsfiddle.net/SkXCG/

于 2012-12-25T22:12:49.067 回答