Newsgroup: it.comp.lang.javascript
Titolo: L'oggetto String

Per la prima volta mi sono messo a studiare nel dettaglio l'oggetto
String. Senza troppi preamboli e spiegazioni vi chiedo di copiare quanto
sotto:
------------------------------
str = "0123456789";
document.write(str.substr(-2,2));
------------------------------
che teoricamente (js 1.2) dovrebbe intercettare il penultimo carattere
della striga e restituire - assieme e dopo di lui - anche l'ultimo.
Con 
- NN 4.7/Mac
- iCab/Mac 
- Opera/Mac
- NN 4.5/Win
                   tutto in regola.
Con 
- IE5/Mac
- IE4.72/Win...    brutte notizie. 
Cortesemente, volete darci un'occhiata? 
TIA
-- 
mailto: y = i
----------------------------------------
Vivo nel terrore di non essere frainteso 
(Oscar Wilde)

scusa.. ma se mai .. la funzione substr ti restituisce 01  e non il
penultimo e ultimo ...
e che problemi ti da su quelle versioni di browser?
flavio


 e che problemi ti da su quelle versioni di browser?
Mi restituisce "ab" invece di "ij". Soltanto Explorer (Win e Mac)
interpreta erroneamente la sintassi, gli altri 3 browser (sempre Win e
Mac) la eseguono alla perfezione.


Nel reference che ho io non c'era scritto ... che quando è negativo inzia a
prendere la parte finale della stringa...=)
********************
If start is negative, substr uses it as a character index from the end
of the string. If start is negative and abs(start) is larger than the
length of the string, substr uses 0 is the start index.
********************
cmq provandolo anche sul mio (IE 5.5) ... ha lo stesso problema !!!
... bhà ... dopo tutto... Javascript... è di nonna Netscape.. e non di mamma
Microsoft...=)
.. mi inizierei a preoccupare se questo accade con netscape..=)
ciao,
Flavio

 .. mi inizierei a preoccupare se questo accade con netscape..=)
Il problema e' che l'utenza Microsoft non e' affatto trascurabile; ergo:
il codice relativo all'oggetto String e' praticamente inutilizzabile (mi
riferisco a quello di cui abbiamo scoperto il "baco"). A questo punto
sorge spontanea una domanda: e se uno ne avesse bisogno? Che tu sappia
(o che voi sappiate), esiste un criterio alternativo per intercettare
gli ultimi caratteri di una stringa? Anzi, poniamola sotto forma di
quesito:
diciamo che il tuo intento e' quello di catturare i primi e gli ultimi
due caratteri del mio nome e cognome al fine di ricavarne un codice
identificativo. Io utente inserisco nel campo Marco Catarsi (che tu vuoi
trasformare in "Masi"). Se i browser di piu' larga diffusione
rispettassero la sintassi js sarebbe semplice:
[...]=substr(0,2) + [...]substr(-2,2) 
ma visto che ne abbiamo assodata l'inaffidabilita', che fare?
E' pura curiosita', niente di cui abbia bisogno; mi sembra solo che
l'argomento valga una conversazione.  


 ma visto che ne abbiamo assodata l'inaffidabilita', che fare?
[...]=substr(0,2) + [...]substr(length-2,2)
Maurizio.

 [...]=substr(0,2) + [...]substr(length-2,2)
Copia e incolla:
str = "0123456789";
document.write(str.substr(0,2) + str.substr(length-2,2));
e apri sia con NN sia con IE. Siamo daccapo :-/


 e apri sia con NN sia con IE. Siamo daccapo :-/
Però se scrivi:
    document.write(str.substr(0,2) + str.substr(str.length-2,2));
si ha lo stesso risultato con tutti e due.
Ciao,
Maurizio.

 si ha lo stesso risultato con tutti e due.
Mi sembra un'ottima soluzione, e finalmente il problema si aggira. 
Thank you :)


nome="marco";
cognome="catarsi";
id=nome.substring(0,2)+cognome.substring(cognome.length-2,cognome.length);
alert(id)
L'ho testato con I.E.5.5 e NN 4.5
Di più non so

On Sat, 11 Aug 2001 11:14:10 GMT, 
marcoc...@tyn.it
 (Catarsi) wrote:
Visto che JavaScript della Microsoft non supporta i numeri negativi
nella funzione, perche' usarli per forza?
Ciao Tutti!


 trasformare in "Masi"). Se i browser di piu' larga diffusione
var N = "Marco";
var C = "Catarsi";
if("Masi" == N.substr(0,2) + C.substring(C.length -2,C.length))
  alert("Funziona");
else
  alert(navigator.appName);

 wrote in message
news:3b75e06b...@news.libero.it...


 bella domanda !!!! =)))
Flavio, stai postando nel futuro di circa 7 ore  :-)  Dai uno sguardo
all'orologio (in particolare al fuso orario, e' probabile che sia
impostato su un meridiano che attraversa gli Stati Uniti).


 wrote in message
news:1ey1klz.nrrpeqanb69sN%marcoc...@tyn.it...


 wrote in message
news:1ey1klz.nrrpeqanb69sN%marcoc...@tyn.it...



Newsgroups: it.comp.lang.javascript
Subject: Re: L'oggetto String
Date: Mon, 13 Aug 2001 05:47:21 +0200
A me non da' alcun fastidio, volevo solo informarti.


 > nella funzione, perche' usarli per forza?
Io ho semplicemente rilevato un'incongruenza fra quanto leggo sul
linguaggio javascript e l'anomalo comportamento Explorer; lungi da me
voler "usare per forza" l'oggetto string nelle sue piene
caratteristiche. Se il browser piu' amato del mondo non rispetta la
reale sintassi js pazienza, ne faro' a meno. Inoltre ritengo che
sollevare un problema e/o mettere in evidenza un fenomeno che alcuni
frequentatori del ng potrebbero non conoscere (vedi la tua prima
risposta: ne e' testimonianza), sia ben lontano dal "voler usare per
forza" qualcosa. Talvolta, oltre alle esigenze, esistono anche le
curiosita' e il gusto di scambiarsi un'opinione.
Niente di personale con Giovanni ma - considerato che me lo chiedi - ora
sai perche' non gli ho risposto.


 if("Masi" == N.substr(0,2) + C.substring(C.length -2,C.length))
Buona idea, grazie :)


On Sun, 12 Aug 2001 21:40:05 GMT, 
marcoc...@tyn.it
 (Catarsi) wrote:
Infatti, anche la mia era solo un'opinione.
E penso che le differenze tra le due versioni di JS siano diverse.
Non definirei "anomalo" il comportamento di IExplorer visto che la
funzione e' ben definita nei vari documents.
Comunque JS e' sempre in evoluzione, se non erro la versione della
Microsoft non e' aggiornata come quella della Netscape (1.4)
Cissa' come si comporta Netscape con il VBScript!
Che ne dite?
Buon lavoro a tutti, o buon divertimento a tutti!
