Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Metodo Match: bug

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    200

    Metodo Match: bug

    Qualcuno potrebbe spiegarmi il comportamento di questo codice?

    Dopo aver chiamato la funzione "Gets" che utilizza il metodo "Match" due volte di seguito (con lo stesso risultato) questa ritorna il valore "D" messo nelle variabili A1 e A2.
    Ora, succede che sia A1 che A2 contengono "D" eppure nel contempo A1 e A2 risultano essere disuguali come mostrato dal risultato delle "if".
    A mio avviso si tratta di un enorme bug che mi ha causato una enorme perdita di tempo.
    Questo messaggio vuole evitare che altri perdano in futuro del tempo prezioso.
    L' "alert" è stato aggiunto per evidenziare sia la lunghezza delle variabili in questione, sia la tipologia, mostrando ancora una volta che esse sono uguali in tutto e per tutto.

    <SCRIPT language="javascript">
    LTC1="10-AD"
    A1=GetS(LTC1)
    A2=GetS(LTC1)
    alert("L1=" + A1.length+" L2="+A2.length+" T1="+typeof A1+" T2="+typeof A2)
    if (A1 == "D"){alert("Verifica1:"+A1+";"+A2)}
    if (A2 == "D"){alert("Verifica2:"+A1+";"+A2)}
    if (A1 == A2) {alert("Verifica3:"+A1+";"+A2)}



    //********************
    function GetS(LTC1){

    S=null
    for (I3=0;S==null;I3++){
    S= LTC1.match("D")
    }//End-for

    return(S)

    }//End-function

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    A1 e A2 sono il risultato del match e come vedi dall'alert sono oggetti.
    Tu dovresti confrontare il valore così
    codice:
    if (A1[0] == A2[0]) {alert("Verifica3:"+A1+";"+A2)}

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    200
    Grazie per la specificazione. Avrei potuto evitare di dire che dal Match viene creato un oggetto. Prima di capire dove poteva stare la differenza ho impiegato ore. Soprattutto perchè si tratta di un errore da trovare in mezzo a migliaia di righe di codice. Vorrei sapere a quanti può venire in mente di verificare la lunghezza e la tipologia della variabile creata. Inoltre non ho segnalazioni di errori di sintassi. Forse dovrei cominciare ad utilizzare 1ST Page.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.