使用带有正则表达式的_.pull从数组中删除

时间:2017-05-09 02:22:57

标签: arrays regex

我有两个数组。一个是充满链接和其他简单的字符串,代表链接的域。它更像是一个黑名单网址。

links = ['http://www.one.com', ... 'http://www.ten.com']
ignore = ['two, four, nine']

我正在尝试使用正则表达式pull,但传递正则表达式,如:

for (let i of iignore) {
  clearedUrls.concat(_.pull(links, `https?:\/\/www.${i}.*`))
}

但没有成功,虽然在Regex101上进行测试,表达式是正确的。

1 个答案:

答案 0 :(得分:0)

使用remove代替,这是以下工作代码:

for (let url of urls) {
  u += `${url.trim()}|`
}

u           = u.substring(0, u.length - 1) // Remove last pipe
let regex   = new RegExp('.*.(' + u + ').com.*', 'g') // https?:\/\/www.(two|four|nine).com.*/g
clearedUrls = clearedUrls.concat(_.remove(links, (obj) => {
  return !obj.match(regex)
}))