substring / regex, um einen src-Wert in einer Zeichenfolge zu erhalten

8

Ich habe eine Zeichenfolge mit dem Wert:

%Vor%

Ich möchte die URL , die im src -Attributenteil der Zeichenfolge enthalten ist, wenn möglich übernehmen.

Wie kann ich das mit JavaScript machen?

    
CLiown 12.09.2012, 17:46
quelle

7 Antworten

24

Eine Möglichkeit besteht darin, reguläre Ausdrücke zu verwenden.

%Vor%     
ggreiner 12.09.2012, 17:50
quelle
7

Alternative Methode, wenn es sich immer um HTML-Daten handelt.

%Vor%

Live-Demo

    
Loktar 12.09.2012 17:52
quelle
5

Natives DOM (führt zu GETs)

%Vor%

oder RegExp

%Vor%     
Paul S. 12.09.2012 18:03
quelle
4

Ein Ansatz ist folgender:

%Vor%

JS Fiddle Demo .

Dies entspricht effektiv einer Folge von Zeichen, die mit src= beginnen (die = wird mit einem umgekehrten Schrägstrich gemerkt, weil sie sonst eine besondere Bedeutung in regulären Ausdrücken hat), gefolgt von einer Folge von Nicht-Leerraum Zeichen ( ^\s* ) gefolgt von einem Leerzeichen ( \s ).

Dieser Ausdruck erfasst explizit die Anführungszeichen, die zum Abgrenzen des Attributs src verwendet werden. src wird zurückgegeben, indem ein Teilstring der Variable srcWithQuotes beginnend mit 1 (das erste, nulleth Zeichen) verwendet wird das Attribut delimiter) bis zum Index vor dem letzten Zeichen (das letzte Zitat, das das Attribut abgrenzt).

Es gibt einen leicht verschachtelten (aber möglicherweise zuverlässigeren) Ansatz, der ein Dokumentfragment verwendet:

%Vor%

JS Fiddle Demo .

Natürlich könnten Sie in diesem Beispiel einen beliebigen Ansatz verwenden, um das Bild im temp -Knoten ( getElementById() , getElementsByClassName() ...) zu finden.

    
David Thomas 12.09.2012 18:00
quelle
2

Angenommen, Sie möchten die Eigenschaft src in einem <img> -Tag zusammenführen. Sie können diese Regex verwenden, da sie mit dem Tag übereinstimmt und dennoch andere Eigenschaften und andere Inhalte in der Eigenschaft src enthält:

var matches = string.match(/<img([^>]+)src="[/]?([^"]+)"([^>]*)>|<( *)img( *)[/>|>]/g);

es kann verbessert werden, aber funktioniert gut mit einigen Arten des Schreibens.

Wenn Sie beispielsweise <img> oder sogar <img src="/200px-Unofficial_JavaScript_logo_2.svg.png" alt="" width="100" height="172" /> anpassen möchten, um der URL etwas hinzuzufügen, können Sie Folgendes ersetzen:

string.replace(/<img([^>]+)src="[/]?([^"]+)"([^>]*)>|<( *)img( *)[/>|>]/g, '<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/9/99/Unofficial_JavaScript_logo_2.svg/" >');

    
Arthur Padilha 10.02.2017 22:11
quelle
0

Sie können dazu jQuery verwenden, indem Sie mithilfe der find-Methode das src-Attribut des Bildes abrufen.

%Vor%     
steve ryu 20.10.2016 06:44
quelle
-1

Faccy 2015: Verwenden von jQuery und CofeeScript über DOM

%Vor%     
biojazzard 25.03.2015 18:10
quelle

Tags und Links