JS: le Plus optimisé possible de supprimer un nom de fichier à partir d'un chemin dans une chaîne de caractères?
J'ai chaînes formatées comme suit:
path/to/a/filename.txt
Maintenant, je voudrais faire quelques manipulation de chaînes qui me permet de manière très efficace de supprimer le "filename.txt" une partie de ce code. En d'autres termes, je veux ma chaîne pour devenir ce:
path/to/a/
Quel est le moyen le plus efficace pour ce faire? Actuellement, je suis le fractionnement de la chaîne et de reconnecter le séparer les éléments, à l'exception de la dernière, mais j'ai le sentiment que c'est vraiment, vraiment inefficace façon de le faire. Voici mon actuel, inefficace code:
res.getPath = function(file)
{
var elem = file.split("/");
var str = "";
for (var i = 0; i < elem.length-1; i++)
str += elem[i] + "/";
return str;
}
- Très similaire: stackoverflow.com/questions/2161511
split
est effectivement très rapide, mais certainement pas le moyen le plus rapide...
Vous devez vous connecter pour publier un commentaire.
Utilisation lastIndexOf() pour trouver la position de la dernière barre oblique et d'obtenir la partie avant de la couper avec substring().
http://example.com/index.php?p=about/location
ouhttp://ex.co/#/14185
/www/test
Comment à ce sujet:
là c'est mieux
Si c'est pour traiter un nom de fichier à partir d'un formulaire de téléchargement de fichier, la spec HTML5 recommande le code suivant:
Référence:
http://www.w3.org/TR/html5/number-state.html#file-upload-statehttp://www.w3.org/TR/html5/forms.html#file-upload-state-(=type de fichier)
Utilisation:
.
test/dir/lib/file- _09.ege.jpg
- Sera à -test/dir/lib/
file- _09.ege.jpg
- Sera à -file- _09.ege.jpg
JS: