Ich möchte alles außer filename.jpg entfernen und an ahng_photos_upload_image zurückgeben. Entfernen Sie alles bis zum letzten Schrägstrich. Wie kann ich das mit Jquery machen?
var filename = imgurl.split("https://stackoverflow.com/").pop();
Klappt wunderbar. Vielen Dank. Ich muss eine Suche durchführen, um zu sehen, wie split() und pop() funktionieren.
– Benutzer1219691
19. Februar 2012 um 23:15 Uhr
@nevermind Eigentlich sind die Pfade in Linux /. Sie sind ` in windows. But it wouldn't matter anyway, since we're talking about URLs which are always /` und keine Pfade.
– Andy
29. August 2015 um 19:53 Uhr
@Andy, wenn der Pfad von einer URL stammt, funktioniert es möglicherweise, aber wenn Sie versuchen, eine Datei hochzuladen, würde der Wert der Eingabe etwa so lauten: “C:\fakepath\filename.txt” (getestet auf meinem localhost unter Ubuntu in Chromium ). Aus diesem Grund bevorzuge ich persönlich den Regex-Weg.
– Benutzer3845133
30. August 2015 um 9:24 Uhr
Sie können einen regulären Ausdruck verwenden, um dies zu erreichen.
var file = imgUrl.replace(/^.*[\\\/]/, '');
Jetzt würde die Datei nur noch aus dem Dateinamen bestehen ..
Wenn Sie ziemlich sicher sind, dass die URLs keine komischen Dinge wie Hashes oder Parameter haben, würde eine Regex wie diese es tun:
var filename = imgurl.replace(/^.*\/([^/]*)$/, "$1");
Außerdem: Vergessen Sie nicht, “imgurl” mit zu deklarieren varund das solltest du wahrscheinlich verwenden .prop() Anstatt von .attr() wenn Ihre Version von jQuery 1.6 oder neuer ist:
var imgurl = jQuery('img', html).prop('src');
Auch jQuery wandelt die Zwei-Argumente-Form der Funktion intern in Folgendes um:
var imgurl = jQuery(html).find('img').prop('src');
also könntest du es genauso gut so codieren.
Eine weitere Möglichkeit:
var filename = imgurl.substring(imgurl.lastIndexOf("https://stackoverflow.com/") + 1);
Bearbeiten: Sehen Sie sich die Version von @Andy an, die die verwendet pop() Methode, letztere ist schneller als slice(-1).
sdw
Beachten Sie, dass Sie, wenn Sie nicht wissen, ob Sie Schrägstriche oder Rückwärtsstriche haben, besser dran sind, die RE-Version von split zu verwenden:
"path".split(/[\/\\]/).slice(-1)
13848800cookie-checkvollständigen Pfad entfernen, nur Dateinamen beibehaltenyes
txt.substring(txt.lastIndexOf(“/”) + 1)
– Kamyar Nazeri
19. Februar 2012 um 21:22 Uhr