使用Regex和JQuery从页面中获取链接号引用

时间:2016-01-29 17:17:26

标签: jquery regex

如果:

var obj=[6849,6850]

我需要从页面上一系列链接的href属性中获取这两个数字。以下代码正在考虑6850,而不是6849

jQuery(document).ready(function() {
jQuery('a.title').each(function () {
    var links=jQuery(this).attr('href'); 
    if(links.indexOf('/')!=-1){
        i=1;
    }
    else{
        i=0;
    }
    var procura=links.match(/(\d+)/g)[i];
    if(obj.indexOf(procura)!=-1){
    ....
   }
};
});
});

如何将这两个号码都传递给procura

编辑:更新的代码:

jQuery(document).ready(function() {
jQuery('a.title').each(function () {
    var links=jQuery(this).attr('href'); 
    if(links.indexOf('/')!=-1){
        i=1;
    }
    else{
        i=0;
    }
    var procura=links.match(/(\d+)/g)[i];

    jQuery.each(obj,function(_,test) {
      jQuery.each(procura,function(_,match) {
        if(test.indexOf(match)!=-1){
            ...
        }
      });
    });

});
});

1 个答案:

答案 0 :(得分:3)

我首先想到的是因为.match将返回一个找到的字符串数组,但是你知道,因为如果有斜杠你自己编入索引



document.write("1234sdfsf21312".match(/(\d+)/g))




所以我相信你正在寻找这个 - 我做了obj字符串,否则他们没有indexOf这是一个字符串方法。



var obj=["6849","6850"];
$(function() {
  $('a.title').each(function () {
    var $link=$(this);
    var href=$link.attr('href'); 
    var idx = href.indexOf('/')!=-1?1:0; // choose the second one if slash
    var procura=href.match(/(\d+)/g)[idx];
    console.log(procura);
    $.each(obj,function(_,test) {
      if(test.indexOf(procura)!=-1) { // only works on strings 
        $link.attr("title",procura+" found"); 
      }
    });
  });
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a class="title" href="/6850/blabla/6849.jpg">Link 1</a>
&#13;
&#13;
&#13;

获取最后一个号码

    var idx = href.indexOf('/')!=-1?1:0; // choose the second one if slash
    var procura=href.match(/(\d+)/g)[idx];

    var matches=href.match(/(\d+)/g);
    var procura=matches.slice(-1).pop();