Newsgroup: it.comp.lang.javascript
Titolo: [HELP] estrarre parte di una stringa

Ciao a tutti,
ho un form con una input file, il value restituisce il percorso
completo, a me servirebbe estrapolare dalla stringa solamente
il nome del file.
Ho provato a guardare un pò, dovrei usare la funzione substr però
prima dovrei con un'altra funzione che non conosco sapere la posizione
dell'ultimo \ nella stringa.
Grazie Ciao
Pippo



E' il metodo lastIndexOf().
Potresti quindi avere qualcosa del genere:
<script type="text/javascript">
function getFileName(sPath){
	return sPath.substring(sPath.lastIndexOf("\\")+1,sPath.length);
}
</script>
Per verifica:
<form>
	<input type="file" name="myfile" />
	<input type="button" value="get file name"
onclick="getFileName(this.form.myfile)" />
</form>
Te l'ho scritto al volo ma dovrebbe andare.
-- 
ZER0
~ The Tangent Universe collapsed 5895 days, 4 hours, 17 minutes and 7 seconds ago.



Te l'ho scritto al volo ma dovrebbe andare.
troppo gentile, da un errore , dice oggetto nn definito, potrebbe
essere che sull'OnClick la prima volta per sfogliare la stringa è
nulla???
però stavo provando anche io con la funzione che stavo provando )e mi
da un'altro errore
function prova(){
var str_nomefile = document.forminserimento.nomefile.value ;
var lunghezzastr = str_nomefile.length-1;
var car = str_nomefile.lastindexOf("\\", 0); 
alert(car);
}
proprietà o metodi non supportati dall'oggetto

>proprietà o metodi non supportati dall'oggetto
avevao scritto lastindexof e non lastIndexOf :-)

 avevao scritto lastindexof e non lastIndexOf :-)
:)
La prossima volta, prova a fare prima il copy&paste, verifica che funzioni,
e poi eventualmente riscrivi il codice ;)
-- 
ZER0
~ The Tangent Universe collapsed 5895 days, 4 hours, 31 minutes and 11 seconds ago.

e poi eventualmente riscrivi il codice ;)
grazie mille ora funzia tutto !!!
:-))




Un ultima cosa: ho cercato di rispondere alla tua domanda senza mettere
"troppa carne sul fuoco" e mantenendomi allineato con quanto chiedevi; ma
se la tua funzione ti serve per una pagina che poi andra' online su un sito
(e non su un pannello amministrativo), devi tener di conto che il backslash
e' usato principalmente da sistemi operativi microsoft, mentre gli altri
utilizzano la notazione in slash.
Una funzione che vada in entrambi i casi, potrebbe essere la seguente:
function getFileName(sPath){
	return sPath.replace(/.*?([^\/\\]+$)/g,"$1")
}
alert(getFileName("c:\\pippo\\pluto\\paperino.txt"));
alert(getFileName("/someday/somewhere/someone.txt"));
Fa uso di regexp, se ne puo' scrivere di migliori, questa e' la prima che
mi e' venuta in mente.
-- 
ZER0
~ The Tangent Universe collapsed 5895 days, 4 hours, 44 minutes and 14 seconds ago.

mettendo un pò di "carne al fuoco"
su quale evento posso metterla, Onclick come avevi scritto credo non
vada bene per via del fatto che il file non è ancora presente,
sull'onblur non va perchè quando clicchi sul browse fa il blur ...
l'unica che mi viene in mente è l'onsubmit del form 
pippo

mi e' venuta in mente.
grazie di nuovo, 
perchè distingui area amministrativa con online? comunque il file lo
va a pescare dalla cartella del pc? giusto! quindi la differenza
dovrebbe essre solo data dal S.O.?
comunque è un'area amministrativa utilizzzabile via web (99% di chi la
usa avrà IE)...

 quindi la differenza dovrebbe essre solo data dal S.O.?
Gia'.
-- 
ZER0
~ The Tangent Universe collapsed 5895 days, 5 hours, 11 minutes and 3 seconds ago.

 l'unica che mi viene in mente è l'onsubmit del form 
Dipende per quale motivo ti serve sapere il nome del file.
Sicuramente l'onsubmit e' cmq l'evento piu' generico ed affidabile per
questo genere di operazioni.
-- 
ZER0
~ The Tangent Universe collapsed 5895 days, 5 hours, 12 minutes and 17 seconds ago.

>Dipende per quale motivo ti serve sapere il nome del file.
mi serve perchè in fase di inseriemento l'utente dovrà inserire dei
codici , codice1 e codice2 e il file dovrà chiamarsi
codice1_codice2.doc o pdf o altro formato
Grazie 
pippo




Intendi dire il file di cui deve fare l'upload DEVE avere nome
"codice1_codice2.pdf", altrimenti non e' considerato valido?
-- 
ZER0
~ The Tangent Universe collapsed 5895 days, 6 hours and 38 seconds ago.

"codice1_codice2.pdf", altrimenti non e' considerato valido?
proprio cosi!

 proprio cosi!
E allora puoi verificare il tutto prima di fare il submit.
-- 
ZER0
~ The Tangent Universe collapsed 5895 days, 8 hours, 14 minutes and 29 seconds ago.

E allora puoi verificare il tutto prima di fare il submit.
in che modo?
come dicevamo prima sull'onblur del campo file non va bene perchè il
blur lo perde anche quando si clicca sul browse della input file

 blur lo perde anche quando si clicca sul browse della input file
Per questo - leggasi l'altro mio post - trovo sconveniente associare
all'onblur qualsivoglia funzione di redirect/submit.
-- 
ZER0
~ The Tangent Universe collapsed 5895 days, 8 hours, 25 minutes and 9 seconds ago.