javascript - 检查 url 是否包含列入黑名单的字符串 javascript
问题描述
如果我有一个像这样的黑名单单词数组:
banLinks = ["hello.com","test.net","this.com"];
我想检查一下myLink
我通过的是否a.getAttribute("href")
包含其中一个词,最好的方法是什么?现在我正在尝试这个,但它不起作用:
for (let i = 0; i < banLinks.length; ++i) {
if ( myLink.indexOf(banLinks[i]) <= -1 ){
urllink = myLink;
}
}
完整部分:
var urllink;
const banLinks = ["hello.com","test.net","this.com"];
for (let j = 0; j < titlesArray.length; ++j) {
if ( "some logic not important" ){
for (let i = 0; i < banLinks.length; ++i) {
if ( titlesArray[j].link.indexOf(banLinks[i]) <= -1 ){
urllink = titlesArray[j].link;
}
}
}
};
解决方案
您是否处于无法使用的情况Array.prototype.findIndex
?(即你必须支持IE)
如果不:
const banLinks = ["hello.com","test.net","this.com"];
const is_banned = banLinks.findIndex(bl => myLink.indexOf(bl) > -1) > -1
并使用您编辑的示例:
const banLinks = ["hello.com","test.net","this.com"];
// is_banned is now a function that ingests a link.
const is_banned = (myLink) => banLinks.findIndex(bl => myLink.indexOf(bl) > -1) > -1
// Get first link from titlesArray that is not banned.
const urllink = titlesArray.map(t => t.link).find(li => is_banned(li) == false)
尽管这都是基于您提供的代码的猜测。您在 for 循环中尝试做什么还不是很清楚。如果要找到第一个有效的(即未禁止)urllink
,则应该break
在找到它之后。否则,urllink
来自其余部分的后续有效 stitlesArray
将覆盖早期的。
推荐阅读
- javascript - Javascript Promises,返回的 Promise 和 catch 方法
- javascript - 谁能告诉我是否可以在 wemos d1 mini 上闪烁 javascript 代码?
- qt - 如何在 Qt3D 中绘制对象的轮廓?
- python - Pytest:将一个夹具传递给另一个
- javascript - 无法使用Angular [Ionic]检查Firebase中是否存在配置文件
- django - 如何根据 Django 中外键的选择填充选择字段?
- php - 如何制作除了用逗号分隔的数字之外不允许任何内容的正则表达式?
- go - 在 Go amqp 客户端中设置连接友好名称
- javascript - 在 C# 和 JavaScript 中使用 TextArea
- php - 如何在 laravel where 子句中使用“CONCAT”而不使用模型