Lorsqu'un utilisateur sélectionne un fichier dans une page Web, je souhaite pouvoir extraire uniquement le nom du fichier.
J'ai essayé la fonction str.search mais cela semble échouer lorsque le nom du fichier ressemble à ceci: c: \ uploads \ ilike.this.file.jpg .
Comment pouvons-nous extraire uniquement le nom du fichier sans extension?
javascript
browser
extract
Yogi Yang 007
la source
la source
filename = filename.substring(0, filename.lastIndexOf('.'));
Parce que son chemin échouera avec des extensions de plus de 3 caractères, donc: .html, .jpeg etc.var startIndex = Math.max(fullPath.lastIndexOf('\\'), fullPath.lastIndexOf('/')) + 1;
Pour diviser la chaîne ({filepath} / {filename}) et obtenir le nom du fichier, vous pouvez utiliser quelque chose comme ceci:
Exemple:
de:
"/home/user/file.txt".split(/(\\|\/)/g).pop()
vous obtenez:
"file.txt"
la source
var filename = filepath.replace(/^.*?([^\\\/]*)$/, '$1');
[\\/]
. De plus, il a également été demandé de supprimer l'extension de fichier. Pour une solution complète, voir: stackoverflow.com/a/32156800/19163De nos jours, il existe un moyen beaucoup plus simple:
la source
fileInput.files.length
avant d'appeler.name
, au cas où l'utilisateur clique sur Annuler.Très simple
la source
En supposant:
Le JavaScript serait:
la source
la source
Je suppose que vous voulez supprimer toutes les extensions, c'est-
/tmp/test/somefile.tar.gz
à- dire àsomefile
.Approche directe avec regex:
Approche alternative avec regex et opération de tableau:
la source
Je viens d'en faire ma propre version. Ma fonction peut être utilisée pour en extraire tout ce que vous voulez, si vous n'avez pas besoin de tout cela, vous pouvez facilement supprimer du code.
Sortira ce qui suit:
Avec
&& nOffset+1 === str.length
ajouté àisDirectory
:Compte tenu des cas de test, vous pouvez voir que cette fonction fonctionne de manière assez robuste par rapport aux autres méthodes proposées ici.
Remarque pour les débutants à propos de \\: \ est un caractère d'échappement, par exemple \ n signifie une nouvelle ligne et \ ta tab. Pour permettre d'écrire \ n, vous devez en fait taper \\ n.
la source
&& eOffset < nOffset
).Entrée :
C:\path\Filename.ext
Sortie :
Filename
Dans le code HTML, définissez la
onChange
valeur File comme ceci ...En supposant que votre identifiant de champ de texte est 'wpName' ...
JavaScript
la source
Aucune des réponses fortement votées ne fournit réellement "juste le nom de fichier sans extension" et les autres solutions sont beaucoup trop de code pour un travail aussi simple.
Je pense que cela devrait être une ligne unique pour tout programmeur JavaScript. C'est une expression régulière très simple:
Commencez par supprimer tout élément jusqu'à la dernière barre oblique, le cas échéant.
Ensuite, dépouillez quoi que ce soit après les dernières règles, le cas échéant.
C'est simple, c'est robuste, il met en œuvre exactement ce qui est demandé. Est-ce que je manque quelque chose?
la source
Comment supprimer l'extension
la source
la source
Aucune des réponses ci-dessus n'a fonctionné pour moi, voici ma solution qui met à jour une entrée désactivée avec le nom de fichier:
la source
Si vous utilisez jQuery alors
la source