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-ID: 12393705437

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

Ausgedruckt am: 27.11.2024 um 05:11 Uhr

13676056485
13676056485 03.07.2024 aktualisiert um 21:21:14 Uhr
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
Justman10000
Justman10000 03.07.2024 um 21:38:09 Uhr
Goto Top
Zitat von @13676056485:

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 😅
Justman10000
Lösung Justman10000 03.07.2024 um 21:44:19 Uhr
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);
Justman10000
Justman10000 03.07.2024 um 21:44:35 Uhr
Goto Top
Dennoch danke