Arrays 使用带有正则表达式的u.pull从数组中删除
我有两个数组。一个是链接,另一个是表示链接域的简单字符串。它更像是URL的黑名单Arrays 使用带有正则表达式的u.pull从数组中删除,arrays,regex,Arrays,Regex,我有两个数组。一个是链接,另一个是表示链接域的简单字符串。它更像是URL的黑名单 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}.*`)) }
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上进行了测试,但表达式是正确的。使用
删除
,这是以下工作代码:
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)
}))
你能澄清你的问题吗?问题标题谈到了lodash函数
过滤器
,但在你提到的使用拉
…原谅,我是无意中写的。我在阅读和思考pull和filter,写了一个,但意思是另一个。没问题。您知道,在lodash中,pull
不接受正则表达式作为第二个参数。您是否尝试过\删除?是的,我现在尝试了一些方法,但似乎都没有效果。remove
接受正则表达式吗?它接受谓词,您可以将其作为调用正则表达式匹配的函数提供。如果你需要帮助,请告诉我。