2017-02-01 2 views
0

Ich verwende /<img\s+[^>]*src="([^"]*)"[^>]*>/g, um HTML nach <img> Tags zu suchen. Es funktioniert. Wenn es jedoch mehrere Tags gibt, wird es in ein Array als 1-Element übergeben. Gibt es eine Möglichkeit, EACH-Tags als einzigartiges Element in das Array zu übertragen? I.e.Regex in Elemente in Array

var arr = [img TAG1, img TAG2, img TAG3, img TAG4]

Vorerst es tut dies und sieht aus wie jeder Tag seine eigene Element ist, aber es ist nicht. Hier ist eine Ausgabe.

var list = arr[0]; 

Ausgabe von Skript:

list = 
    <'img' src="/RightAnswers/WB FAQs/Mail &amp; Collaboration/090101028112912.jpg" alt="Inline Image" />, 
    <'img' src="/RightAnswers/WB FAQs/Mail &amp; Collaboration/090101028113127.jpg" alt="Inline Image" />, 
    <'img' src="/RightAnswers/WB FAQs/Mail &amp; Collaboration/090101028113955.jpg" alt="Inline Image" />, 
    <'img 'src="/RightAnswers/WB FAQs/Mail &amp; Collaboration/090101028114034.jpg" alt="Inline Image" /> 
    <'img' src="/RightAnswers/WB FAQs/Mail &amp; Collaboration/090101028114105.jpg" alt="Inline Image" />, 
    <'img' src="/RightAnswers/WB FAQs/Mail &amp; Collaboration/090101028114345.jpg" alt="Inline Image" /> 

Note- ich die <img> Tags in einem Anführungszeichen ('img') zu wickeln hatte, diese Frage zu stellen. Sie sind NICHT in der tatsächlichen Ausgabe vorhanden.

var list = arr[1]; 

Ausgabe von Skript:

list=undefined 

ich diese Regex gesehen haben, ist nicht das beste Werkzeug, HTML für das Parsen, muss ich dies als Teil eines Import in ServiceNow einmal tun, so Ich habe keinen Zugriff auf Parsing-Tools. Wenn es nicht etwas gibt, kann ich eine CSV-Datei ausführen, um JUST den Dateinamen aus den <img> Tags zu erfassen.

Antwort

0

Warum nicht Javascript verwenden, um alle img Elemente anstelle von Regex zu sammeln?

So:

var imgCollection = document.getElementsByTagName('img'); 
 
console.log(imgCollection);
<div id="just-a-div"><p>random paragraph</p></div> 
 

 
<img src="/RightAnswers/WB FAQs/Mail &amp; Collaboration/090101028112912.jpg" alt="Inline Image" /> 
 
<img src="/RightAnswers/WB FAQs/Mail &amp; Collaboration/090101028113127.jpg" alt="Inline Image" /> 
 
<img src="/RightAnswers/WB FAQs/Mail &amp; Collaboration/090101028113955.jpg" alt="Inline Image" /> 
 
<div></div>

+0

Ich habe keinen Zugriff auf das DOM, von ServiceNow. –

+0

Können Sie den Code hinzufügen, den Sie verwenden, um die HTML-Zeichenfolge mit dem Regex-Muster zu vergleichen? Denn wenn ich deine Regex starte, funktioniert es gut ... –