get-string zwischen zwei Zeichenfolgen mithilfe von jquery
Wenn ich in diesem HTML -
<div class="comment-body">
[img]http://topnews.net.nz/images/YouTube-3.jpg[/img] random text here
</div>
<div class="comment-body">
[img]http://blog.brightcove.com/sites/all/uploads/FACEBOOK%20ICON.png[/img] random text here
</div>
wie mithilfe von jquery kann ich extrahieren Sie den Wert zwischen [img]
und [/img]
und legen Sie es als eine variable data-src2=""
innerhalb einer <img>
element geben
<div class="comment-body">
<img src="samesrc" class="commentimg" data-src2="http://topnews.net.nz/images/YouTube-3.jpg"/> random text here
</div>
<div class="comment-body">
<img src="samesrc" class="commentimg" data-src2="http://blog.brightcove.com/sites/all/uploads/FACEBOOK%20ICON.png"/> random text here
</div>
Ich habe nichts zu geben für das, was ich versucht habe, wie ich haben keine Ahnung, wie das extrahieren der Wert zwischen [img]
und [/img]
aber insgesamt DIESE ist, was ich versuche zu erreichen, wenn es nicht sinnvoll ist!
Keine Notwendigkeit von jQuery, nur ein plain jane regex!
Also, Sie wollen einen BBCode-parser?
etwas in diesem Sinne, ja, es macht die Dinge einfacher!
Was haben Sie bisher ausprobiert? Zeigen einige Mühe, bitte. Auch: stackoverflow.com/questions/1843320/...
Ich wünschte, ich könnte upvote ein Kommentar 10 mal
Also, Sie wollen einen BBCode-parser?
etwas in diesem Sinne, ja, es macht die Dinge einfacher!
Was haben Sie bisher ausprobiert? Zeigen einige Mühe, bitte. Auch: stackoverflow.com/questions/1843320/...
Ich wünschte, ich könnte upvote ein Kommentar 10 mal
InformationsquelleAutor Yusaf Khaliq | 2011-12-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Getestet und funktioniert jetzt auch (original version nicht Durchlaufen alle
.comment-body
Elemente, oder finden Sie diesubstring()
richtig):JS Fiddle.
Bearbeitet, weil ich ein bisschen gelangweilt, und so wandte sich die oben in einem mehr-generische Funktion:
JS Fiddle demo.
Bearbeitet folgende weitere Fragen aus der OP (in den Kommentaren weiter unten):
Ich habe ein paar sanity-checks, um sicherzustellen, dass die Funktion gibt false zurück, wenn dem angegebenen tag nicht gefunden:
JS Fiddle demo.
Bearbeitet in der Antwort auf eine weitere Frage aus der OP (in den Kommentaren weiter unten):
Ja, Sie können
.append()
oder.prepend()
das Bild in das element, nach dem ersten Update der text derdiv
im folgenden code habe ich entfernt, die[img]...[/img]
string, verlassen nur den anderen text eingefügt, dass der text in der.comment-body
element und dann angehängt, dieimg
zu, dass, anstelle der VerwendungreplaceWith()
:JS Fiddle demo.
Referenzen:
append()
.()
.prepend()
.replaceWith()
.text()
.indexOf()
.length
.replace()
.substring()
.trim()
.Sir, ich weiß nicht, was in der Welt Sie reden. Alle ich sah, war ein Windstoß.
David ' s code funktioniert sehr gut (+1 :o) ). Sie brauchen nur zu verwenden
tagString
zu erstellen, die<img>
Elemente (wie das hier).Hinweis an die Leser,: falls Ihr code ruft
findStringBetween()
oft betrachten Sie die Definition der FunktionimpliedEndTag()
außerhalb derfindStringBetween()
. Wenn eine Funktion eine andere Funktion wird dann jedesmal, wenn die "parent" Funktion wird aufgerufen, die "Kinder" - Funktionen erstellt werden. So ruftfindStringBetween()
100 mal bedeutet, dassimpliedEndTag()
erstellt, das 100-fache. Siehe diesem Artikel.Ich habe einige Referenzmaterialien, um am Ende der post, für Sie durch zu Lesen. Es kann eine Weile dauern, um sich bequem mit JavaScript oder auch jQuery. Fragen Sie einfach die Fragen, die Sie haben (nachdem Sie versucht Forschung) und, wenn Sie in der Lage, starten Sie zu beantworten. Ich habe keine Zeit, um sich an Ihrer Geige nun, aber ich werde versuchen zu erinnern, zu sehen morgen, nach der Arbeit. =)
InformationsquelleAutor David Thomas
Alternative Antwort auf die eine schrieb von David Thomas.
Andere Art und Weise, wie dieser code implementieren, ist die Verwendung von regulären Ausdrücken.
Diese Implementierung ersetzen auch mehrere tags innerhalb des Kommentars.
Sehen DIESE code-snippet.
Hinweis 1:
Bei der Umsetzung dieses code in der realen Umgebung betrachten Sie bitte vorab die Schaffung regulärer Ausdruck für alle behandelt, - tag-Namen außerhalb
replaceText()
soregExp
wird nicht erstellt werden, jedes mal wennreplaceText()
genannt wird.Hinweis 2:
Zu bekommen, die genau die Ausgabe, wie in der Frage ändern:
zu
Ich empfehle Ihnen, zu studieren ein wenig und Experimentieren Sie mit dem code, so werden Sie in der Lage, es zu ändern, indem Sie sich. Wenn Sie immer noch Schwierigkeiten haben, erstellen Sie eine neue Frage. Verwenden Sie Kommentare nur zu diskutieren, die konkrete Antwort für eine konkrete Frage und nicht für andere Zwecke. Zur info: Code in meiner Antwort stellen wird, ganze youtube-link zu
$1
. Um Ihr Problem zu lösen, müssen Sie entweder ändern Sie die regexp zum extrahieren nur der?watch=
Teil und nicht youtube-link oder setzen Sie nur?watch=thisPart
zwischen den tags (mehr Allgemeine Lösung): siehe DIESER.danke, ich habe versucht Sachen, aber Sie sind nutzlos, ich werde nach links für Fehler von jetzt, sorry.
Froh zu helfen :). Sorry wenn es unhöflich Klang, aber das erstellen einer Frage können andere Leute zu finden, die gleichen Probleme leichter, Menschen zu helfen, haben Sie bessere Werkzeuge (wie code-Blöcke, die Fähigkeit, zu Bearbeiten, nach mehr als 5 Minuten, etc.) und Sie können noch einige extra-rep als bonus :).
Ich habe eine Lösung geschaffen, um die [youtube][/youtube] und [img][/img] problem, das ich hatte, dzejkej und David Thomas haben Sie schon brilliant, danke sehr.
InformationsquelleAutor kubetz
Diese Funktion findet alle gegeben, welche in einer Zeichenfolge, und wenn Sie möchten, können Sie es konfigurieren, die für das ersetzen oder extrahieren von Inhalten als array aus diesen bbcodes.
InformationsquelleAutor Amanzhol
JavaScript match () - Funktion, sehr einfach zu bedienen
Ist wie wenn Sie eine Zeichenfolge "The quick brown fox jumps over the lazy dog."
& Sie brauchen den text nur zwischen "schnell" und "faul"
Unter
Hoffe, es hilft !!
InformationsquelleAutor Mahesh Yadav