Discussione:JavaScript/Oggetto String
Stavo leggendo la guida quando ho visto l'esempio charAt() e guardando la tabella con la scritta "Hello, world!" e ho notato che manca lo spazio tra la virola e la parola world... charAt() non rileva gli spazi? --Giacomo986 17:27, 28 feb 2009 (CET) 20:09, 24 feb 2009 (CET)
- No, è un errore ;) Ora ho corretto, grazie per la segnalazione :) --Ramac · «che lungi saetta» 21:05, 25 feb 2009 (CET)
charAt
modificaPiccolo commento, l'esempio di charAt mostra hello world! Riportando .lenght-1 per la d, tutto ok ma secondo me potrebbe causare confusione o fraintendimenti a chi la legge di sfuggita (per esempio chi arriva da altri linguaggi ed è interessato alla sintatti più che altro, è il mio caso) prendendo per scontato che il -1 sia dovuto al carattere \0, che in C termina le stringhe. Sarebbe carino evitare questo tipo di esempio, rielaborandolo in altri modi :)
Approfitto per ringraziare della guida, molto ben fatta!
Esercizio 2
modificaDa quando ho scritto una vera funzione .py che risolve il problema dell'esercizio 2 sono a posto.... ma ci sono infiniti trabocchetti.
- il caso in cui le stringhe iniziale e finale non ci sono, o una delle due manca;
- il caso in cui la sottostringa finale viene prima della iniziale;
- il caso in cui la stringa iniziale comprende quella finale;
- il caso malefico (frequente) in cui le sottostringhe sono annidate (ossia vi sono più sottostringhe iniziali e poi una finale; es. i tag HTML).
Non appena ho cominciato a studiare js (tre giorni fa) la prima cosa che ho fatto è scrivere una funzione js che risolva (per bene) l'esercizio 2.
Se me la correggete mi fate un favore!
/* estrae dalla stringa testo la prima sottostringa che inizia con s1(stringa a piacere) e termina con s2 (stringa a piacere). Se delim==true restituisce, insieme alla sottostringa, anche i delimitatori s1 e s2, se delim==false li esclude. Nella sequenza : .....s1....s1-----s2....s2.... restituisce s1-----s2 e non s1....s1-----s2 (restste ai "delimitatori annidati") */ fs(testo,s1,s2,delim) { i1=testo.indexOf(s1); if (i1>-1) { i1=i1+s1.length; testo=testo.substring(i1); } else {testo="";return testo;} i2=testo.indexOf(s2); if (i2>-1) {testo=testo.substring(0,i2); } else {testo="";return testo; } lif=testo.lastIndexOf(s1); if (lif!=-1) {lif=lif+s1.length; testo=testo.substring(lif); } if (delim) {testo=s1+testo+s2; } return testo; }