选择包含数字的第一个元素 - 2014年

时间:2014-12-04 17:03:40

标签: javascript jquery regex match

<p>first - 2014</p>
<p>a - 2014</p>
<p>a - 2014</p>
<p>a - 2013</p>
<p>a - 2013</p>

$("p").each(function(){
    var str = $(this).text();
    var patt = /\d+$/;
    var res = str.match(patt);

    if (res == 2014){
      var arr = [];
      arr.push($(this));
      console.log(arr[0])
    }
});

我试图获得2014年的第一段 - 但是确定2014年的所有元素

我做错了什么,我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

只需使用filter(),因为这通常更有用。如果您想要第一个,那么只需在结果上调用first()

http://jsfiddle.net/TrueBlueAussie/zxqegsuh/3/

var ps = $("p").filter(function(){
    var str = $(this).text();
    var patt = /\d+$/;
    var res = str.match(patt);

    return (res == 2014);
});
alert(ps.length);

// if you want the first only
ps.first().css('color', 'red');

减少到:http://jsfiddle.net/TrueBlueAussie/zxqegsuh/4/

var ps = $("p").filter(function(){
    return $(this).text().match(/\d+$/) == 2014;
});

注意:您继续声明一个本地数组,将结果推到它上然后扔掉它。这似乎有点不对劲:))