Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    150

    Confronto tra stringhe in JS

    CIao a tutti, vengo subito al dunque:

    in uno script racchiuso nell'head ho il seguente codice:

    ris1=document.frm1.im1.src.substring (document.frm1.im1.src.length-5,document.frm1.im1.src.length-4) ;
    ris2=document.frm1.im2.src.substring (document.frm1.im2.src.length-5,document.frm1.im2.src.length-4);
    ris3=document.frm1.im3.src.substring (document.frm1.im1.src.length-5,document.frm1.im3.src.length-4);

    ora, siccome ho nominato (son file immagini) le "im1" con numeri da 0 a 7 (.jpg), il comando document.frm1.im1.src.substring (document.frm1.im1.src.length-5,document.frm1.im1.src.length-4)
    mi restituisce una stringa da 0 a 7, e fin qui tutto ok.

    Ora se io confronto ris1,ris2 e ris3 in questo modo:

    if (ris1==ris2 || ris1==ris3)

    mi va tutto bene.
    Dal momento che pero' devo confrontare le stringhe ris con un valore numerico mi sorge il problema.
    Ovvero come faccio se devo confrontare che ad esempio in ris1 sia contenuto un numero (o anche la stringa) che vada da 1 a 7?

    Ho provato in vari modi ma niente nn riesco a capire come mai non mi vada.
    Ho provato a fare

    ris1==0 ma non va perche ris1 e' una stringa, allora ho provato
    ris1==(0+"") pensando di convertire cosi 0 in stringa ma nada anche qui

    Ho pure provato coi metodi java-.-

    pls help

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    ris1==(""+0)

    oppure, molto piu' standard,

    parseInt(ris1,10)==0

    ciao

    ps: che caspita sono i metodi java-.- :master:
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    150
    equal e compare

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    150
    Niente non mi va con entrambe le soluzioni che mi hai detto, com'e possibile?

    ris1 ris2 e ris3 son substring quindi ovviamente stringhe...possibile non riesco a compararli con stringhe/numeri da 0 a 7 per vedere se coincidono?

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Ma cosa sono im1 im2 e im3? per caso immagini? allora non possono appartenere ad un form, devi raggiungerli con altra sintassi, per esempio con document.getElementById().

    Nella terza riga c'e' un nome sbagliato:
    ris3=document.frm1.im3.src.substring (document.frm1.im1.src.length-5,document.frm1.im3.src.length-4);

    Questo il test:
    <script>
    im3 = "http://www.sito.it/immagini/pippo001.gif";
    ris3 = im3.substring(im3.length-5,im3.length-4);
    alert(ris3)
    alert((ris3==""+1))
    alert((parseInt(ris3,10)==1))
    </script>

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    150
    Grazie delle risposte, ma non capisco perche' nel mio file non vanno.
    Ho organizzato un form su una tabella, del tipo

    <form>
    <tr>
    <td>immagine</td>
    <tr>
    ...etc
    </form>

    Ora quello che non capisco, e' che io con i comandi che ho scritto sopra, estraggo la substringa dal file .jpg. E fin li e' corretto perche' dandoli in output mi vengono numeri da 0 a 7 (o meglio stirnghe essendo substring).
    Ora se io faccio il confronto tra di loro:

    else if (ris1==ris2 || ris1==ris3 || ris2==ris3) //coppia di immagini uguali
    {
    aumento=document.frm1.resto.value*1;
    aumento=aumento+150;
    document.frm1.resto.value=aumento;
    window.alert("BELLA GIOCATA!!!Hai vinto 150 euro!!\nOra hai :" + document.frm1.resto.value);

    }

    mi va tutto bene, mi gira tutto alla perfezione e in modo corretto.
    Come voglio far il confronto con altre stringhe , mi da l'errore..e non capisco perche'...il tuo script e' giusto ma se lo introduco nel mio non mi gira...

    else if ( (parseInt(ris1,10)==0) && (parseInt(ris2,10)==7) && (parseInt(ris3,10)==4) ) //combinazione vincente
    {
    aumento=document.frm1.resto.value*1;
    aumento=aumento+100;
    document.frm1.resto.value*1=aumento;
    window.alert("BELLA GIOCATA!!!Hai vinto 100 euro!!\nOra hai :" + document.frm1.resto.value);

    }

    cosi non va (ma non conosco bene il metodo parseInt), e neanche con

    else if ( ris1==""+0 )

    e non capisco perche'. se ris1 ris22 e ris3 mi restituiscono in modo corretto, come fa il tuo, la substring con il numero..com'e possibile che non mi funziona nel mio script?

  7. #7
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Se lo script e' correto e preso da solo funziona, il problema ovviamente risiede nel resto della pagina... che ignoriamo.

    posta un link.

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    150
    Posso scriverti qui il file?Sono all'uni e non saprei dove upparlo

  9. #9
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Purche' sia un html... e non in linguaggio lato server.

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    150
    Ho trovato l'errore...l'errore era nella sintassi del corpo dell'if e non nel confronto...ci ho lavorato ore ieri e non vedevo l'errore..


    {
    aumento=document.frm1.resto.value*1;
    aumento=aumento+100;
    document.frm1.resto.value*1=aumento; //errore
    window.alert("BELLA GIOCATA!!!Hai vinto 100 euro!!\nOra hai :" + document.frm1.resto.value);

    }

    avevo fatto copia/incolla del testo e avevo copiato anche il *1 che non andava li...ora va tutto>P

    Grazie dei consigli cmq molto utili

    ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.