如何将包含特定字符串的网址添加到数组中?

时间:2018-04-04 22:25:18

标签: javascript node.js

我正在尝试获取元素的所有值

var request = require('request');
var cheerio = require('cheerio');
var url = "https://www.mismarcadores.com";
request(url, function(err, resp, body) {

    if (err) throw err;
    var $ = cheerio.load(body);
    var addUrl= [];
    $('a').each(function (i, element) {
        var a = $(this);
        var href = a.attr('href');
        addUrl.push(href);      
    })
    console.log(array[0]);
})

我有这样的代码,添加链接,阵列称为addUrl,这个完美的作品,但现在我正在寻找如何添加到该数组如果URL中包含的HREF词“baloncesto”。

好例子https://www.mismarcadores.com/baloncesto/alemania/

此网址很好,但

错误示例https://www.mismarcadores.com/golf/

这是错误的。

我正在使用NodeJS开发这个,但这只是一个简单的javascript,现在我不知道如何制作它。

有人可以帮帮我吗?

4 个答案:

答案 0 :(得分:0)

you can try this
if(href.contains('baloncesto')){
  addUrl.push(href);      
 }

答案 1 :(得分:0)

好的,所以你要找的是模式匹配 - 如果href包含字符串baloncesto。我怀疑this SO thread会对你有所帮助 - 你基本上想要嵌套这一行 -

addUrl.push(href);

- 在if语句中,如

if(href.includes('baloncesto')) { addUrl.push(href); }

...但请务必查看其他答案以供参考,以防您使用旧版本且与ES6不兼容的JS版本。

答案 2 :(得分:0)

试试这个

var request = require('request');
var cheerio = require('cheerio');
var url = "https://www.mismarcadores.com";
request(url, function(err, resp, body) {

if (err) throw err;
var $ = cheerio.load(body);
var addUrl= [];
$('a').each(function (i, element) {
    var a = $(this);
    var href = a.attr('href');
    if (decodeURIComponent(href).contains('baloncesto')){
        addUrl.push(href);    
    } else {
    //do something else
    }
})
console.log(array[0]);

})

答案 3 :(得分:0)

请尝试这样:

var request = require('request');
var cheerio = require('cheerio');
var url = "https://www.mismarcadores.com";
var filterStr = 'baloncesto';
request(url, function(err, resp, body) {

    if (err) throw err;
    var $ = cheerio.load(body);
    var addUrl= [];
    $('a').each(function (i, element) {
        var href = $(this).attr('href');
        if (href.indexOf(filterStr) > -1 ) addUrl.push(href);
    })
    console.log(addUrl);
})