2014-12-16 12 views
6

Se ho un percorso di file come ad esempio:Split stringa di percorso della cartella

var/www/parent/folder 

Come potrei fare per rimuovere l'ultima cartella per tornare:

var/www/parent 

Le cartelle possono avere tutti i nomi, Sono abbastanza felice di usare regex.

Grazie in anticipo.

+2

NodeJS o ambiente browser? NodeJS ha il modulo [Percorso] (http://nodejs.org/api/path.html). – tadman

risposta

9

Utilizzare la seguente espressione regolare per abbinare l'ultima parte di directory e sostituirla con una stringa vuota.

/\/[^\/]+$/ 

'var/www/parent/folder'.replace(/\/[^\/]+$/, '') 
// => "var/www/parent" 

UPDATE

Se il percorso termina con /, l'espressione sopra non corrispondere al percorso. Se si desidera rimuovere l'ultima parte del percorso tale, è necessario utilizzare modello folloiwng (optional da abbinare ultima /):

'var/www/parent/folder/'.replace(/\/[^\/]+\/?$/, '') 
// => "var/www/parent" 
+0

il primo ha funzionato in quanto non aggiungo un "/" alla fine. Grazie un dispiacere mi ha fatto aspettare 5 minuti finché non ho potuto accettare come risposta:/ –

11

utilizzare il split> slice-> funzione di registrazione:

"var/www/parent/folder".split('/').slice(0, -1).join('/'); 
+0

Molto più facile da ricordare rispetto alla soluzione regex. – RayLuo

2

Se è sempre l'ultima cartella si vuole sbarazzarsi di, il metodo più semplice sarebbe quella di utilizzare substr() e lastIndexOf():

var parentFolder = folder.substr(0, folder.lastIndexOf('/')); 

jsfiddle example

Problemi correlati