有没有办法在匹配正则表达式的所有文本上执行回调函数?

时间:2012-12-22 09:57:29

标签: jquery regex

我正在创建一个书签,使用正则表达式从页面中提取价格(比如让我们说亚马逊),我希望能够提取有关每个价格的字体大小的额外信息,以此作为评估其重要性的方式。

下面是我生成的代码,它正在寻找我正在寻找的代码。 match()创建一个价格数组,并且:包含返回并重新搜索其字体大小的每个找到的价格。但是,如果相同的价格出现两次,这将是一个问题。

我正在寻找一种方法,一步到位。 任何建议将不胜感激。

var prices = jQuery('body').text().match(/[\$€£]\s*(?:\d[\d,]*(?:\.\d+)?)/g);
    jQuery.each(prices, function() {
        var size = parseInt(jQuery(":contains('" + this + "')").css('fontSize'));
    });

1 个答案:

答案 0 :(得分:2)

你要迭代容器元素的结果

var prices = jQuery('body').text().match(/[\$€£]\s*(?:\d[\d,]*(?:\.\d+)?)/g);
var results = [];
jQuery.each(prices, function() {
    var price = this;
    results[ price ] = [];
    jQuery(":contains('" + this + "')").each( function() {
        var size = parseInt( $( this ).css( 'fontSize' ), 10 );
        results[ price ].push( size );
    } );
});

results现在是一个数组,价格为关键字,所有相应的字体大小为关键字的值