justman10000
Goto Top

Arrays treffen über forEach() auf Regex

Nehmen wir mal an, wir haben diesen Array:

const array = [
    'wert1',  
    'wert2',  
    'wert3'  
]

Nun lasse ich jeden Wert einzeln ausgeben:
array.forEach(wert => {
    console.log(wert)
})

So weit, so gut! Nun haben wir einen zweiten Array:
const array2 = [
    'url',  
    'url2',  
    'url3'  
]

Wie anhand der Wertnamen zu sehen, sind im zweiten Array nur URLs! Die Frage ist, wie kann ich jeden einzelnen Wert des ersten Arrays auf jeder URL des zweiten Arrays mittels Regex prüfen und mir diesen ausgeben? An sich funktioniert es bei mir! Bei meinem aktuellen ersten Array mit 5 Werten, kann ich im zweiten Array jedoch nur auf zwei URLs prüfen

Content-Key: 12393705437

Url: https://administrator.de/contentid/12393705437

Printed on: July 6, 2024 at 12:07 o'clock

Member: WolleRoseKaufe
WolleRoseKaufe Jul 03, 2024 updated at 19:21:14 (UTC)
Goto Top
Auch kein Hallo.
Leider zu ungenau beschrieben, ob die Werte selbst RegexPatterns sind ...
Meine Interpretation , k.A. ob das deine Intention ist, aber damit solltest du dein Ziel erreichen ...
const werte = ['wert1','wert2','wert3'];  
const urls = ['https://wert1.de','https://other.de','https://domain.tld/wert2'];  
let result = werte.filter(wert => {
   for(i in urls){
       if((new RegExp(wert,"i")).test(urls[i])){  
           return true;
       }
   }
});
console.log(result);
https://tio.run/##VY/BCsIwDIbve4rgZS1oh3oRx7z5Al7HDsNlWqntSDMVxGefa6eIOS ...

Auch kein Tschüss
Member: Justman10000
Justman10000 Jul 03, 2024 at 19:38:09 (UTC)
Goto Top
Zitat von @WolleRoseKaufe:

Auch kein Hallo.
Leider zu ungenau beschrieben, ob die Werte selbst RegexPatterns sind ...
Meine Interpretation , k.A. ob das deine Intention ist, aber damit solltest du dein Ziel erreichen ...
const werte = ['wert1','wert2','wert3'];  
const urls = ['https://wert1.de','https://other.de','https://domain.tld/wert2'];  
let result = werte.filter(wert => {
   for(i in urls){
       if((new RegExp(wert,"i")).test(urls[i])){  
           return true;
       }
   }
});
console.log(result);
https://tio.run/##VY/BCsIwDIbve4rgZS1oh3oRx7z5Al7HDsNlWqntSDMVxGefa6eIOS ...

Auch kein Tschüss

Der zweite Array:
const blacklistedURLs = [
  '.+deadurl\.invalid.+'  
]

Der erste Array weist URLs auf, die anhand des zweiten Arrays rausgefiltert werden sollen... Was vor oder nach den geblacklisteten URLs kommt, ist irrelevant (wie im Regex des zweiten Arrays zu sehen)! Mit deinem Beispiel jedoch zeigt der nichts!

PS: Hi 😅
Member: Justman10000
Solution Justman10000 Jul 03, 2024 at 19:44:19 (UTC)
Goto Top
Ich habe es!

const links = [
    "https://beispiel.domain.tld",  
    "https://domain.tld/beispiel2",  
    "https://beispiel.domain.tld/beispiel2",  
]

const blacklistedURLs = [
    /domain\.tld/gi
]
  
let result = links.filter(link => {
   return !blacklistedURLs.some(blacklistedURL => blacklistedURL.test(link));
});

console.log(result);
Member: Justman10000
Justman10000 Jul 03, 2024 at 19:44:35 (UTC)
Goto Top
Dennoch danke