Wenn ein Benutzer eine Datei auf einer Webseite auswählt, möchte ich nur den Dateinamen extrahieren können.
Ich habe die Funktion str.search ausprobiert, aber es scheint fehlzuschlagen, wenn der Dateiname ungefähr so lautet: c: \ uploads \ ilike.this.file.jpg .
Wie können wir nur den Dateinamen ohne Erweiterung extrahieren?
javascript
browser
extract
Yogi Yang 007
quelle
quelle
filename = filename.substring(0, filename.lastIndexOf('.'));
Weil sein Weg mit Erweiterungen von mehr als 3 Zeichen fehlschlägt, also: .html, .jpeg usw.var startIndex = Math.max(fullPath.lastIndexOf('\\'), fullPath.lastIndexOf('/')) + 1;
Um die Zeichenfolge ({Dateipfad} / {Dateiname}) zu teilen und den Dateinamen abzurufen, können Sie Folgendes verwenden:
Beispiel:
von:
"/home/user/file.txt".split(/(\\|\/)/g).pop()
du erhältst:
"file.txt"
quelle
var filename = filepath.replace(/^.*?([^\\\/]*)$/, '$1');
[\\/]
. Darüber hinaus wurde auch darum gebeten, die Dateierweiterung zu entfernen. Eine vollständige Lösung finden Sie unter : stackoverflow.com/a/32156800/19163Heutzutage gibt es einen viel einfacheren Weg:
quelle
fileInput.files.length
vor dem Anruf.name
, ob der Benutzer auf Abbrechen geklickt hat.Sehr einfach
quelle
Angenommen:
Das JavaScript wäre:
quelle
quelle
Ich gehe davon aus, dass Sie alle Erweiterungen entfernen möchten, dh
/tmp/test/somefile.tar.gz
bissomefile
.Direkter Ansatz mit Regex:
Alternativer Ansatz mit Regex- und Array-Operation:
quelle
Ich habe gerade meine eigene Version davon gemacht. Meine Funktion kann verwendet werden, um alles zu extrahieren, was Sie wollen. Wenn Sie nicht alles benötigen, können Sie einfach Code entfernen.
Gibt Folgendes aus:
Mit
&& nOffset+1 === str.length
hinzugefügt zuisDirectory
:In Anbetracht der Testfälle können Sie sehen, dass diese Funktion im Vergleich zu den anderen hier vorgeschlagenen Methoden recht robust funktioniert.
Hinweis für Neulinge, dass \\: \ ein Escape-Zeichen ist, z. B. \ n bedeutet eine neue Zeile und eine \ ta-Registerkarte. Um das Schreiben von \ n zu ermöglichen, müssen Sie tatsächlich \\ n eingeben.
quelle
&& eOffset < nOffset
).Eingabe :
C:\path\Filename.ext
Ausgabe :
Filename
Stellen Sie im HTML-Code den
onChange
Wert für " Datei" wie folgt ein ...Angenommen, Ihre Textfeld-ID lautet 'wpName' ...
JavaScript
quelle
Keine der hoch bewerteten Antworten enthält tatsächlich "nur den Dateinamen ohne Erweiterung", und die anderen Lösungen sind viel zu viel Code für einen so einfachen Job.
Ich denke, dies sollte ein Einzeiler für jeden JavaScript-Programmierer sein. Es ist ein sehr einfacher regulärer Ausdruck:
Entfernen Sie zuerst alles bis zum letzten Schrägstrich, falls vorhanden.
Ziehen Sie dann nach der letzten Periode etwas aus, falls vorhanden.
Es ist einfach, es ist robust, es implementiert genau das, was verlangt wird. Vermisse ich etwas
quelle
So entfernen Sie die Erweiterung
quelle
quelle
Keine der oben genannten Antworten hat bei mir funktioniert. Hier ist meine Lösung, die eine deaktivierte Eingabe mit dem Dateinamen aktualisiert:
quelle
Wenn Sie dann jQuery verwenden
quelle