Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    2 controlli con reg.exp che si comportano in maniera differente

    function checkCampo(nomecampo, nomecampoAlert)
    {

    var str = nomecampo.value;
    var re = new RegExp("^[0-9a-zA-ZàèìòùÀÈÌÒÙ']*$");
    if(!str.match(re))
    {
    alert("Il campo "+nomecampoAlert+" contiene dei caratteri non validi");
    nomecampo.focus();
    }

    }


    function checkCodiceFiscale(nomecampo, nomecampoAlert)
    {
    var re = /^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/;
    Codice=trim(nomecampo.value.toUpperCase());
    if((!re.test(Codice)))
    {
    alert("I valori inseriti nel campo "+nomecampoAlert+" non sono validi");
    nomecampo.focus();
    }



    }


    la prima di queste 2 funzioni se ne frega se ad esempio io mi sposto col mouse nel campo di testo e poi me nevado senza scrivere nulla; la seconda invece(qualora io tengo lo stesso comportamento) mi spara fuori l'alert.

    ho dovuto quindi inserire qcosa del tipo
    if((!re.test(Codice))&&(Codice!=""))
    per evitare il danno

    perchè cè tale differenza???
    dipende dal tipo di reg.exp^^^???

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188

    Re: 2 controlli con reg.exp che si comportano in maniera differente

    Anzitutto una piccola differenza c'e`.

    In un caso usi una RE:
    var re = new RegExp("^[0-9a-zA-ZàèìòùÀÈÌÒÙ']*$");

    Nel secondo una stringa (usata come RE)
    var re = /^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/;

    Ma forse non e` quello il problema.

    Dovresti postare anche come vengono richiamate le due funzioni: potrebbe essere che in un caso usi onblur e nell'altro onchange.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    no in entrambi onblur.
    ho provato anche a usare tutte e 2 come stringhe.
    (oggi ti sto scassando eh :quipy: )

    vabbeh cmq poco male (se lo sai dimmelo eh)

  4. #4
    ritiro tutto , era quello
    (la cosa delle stringhe)

  5. #5
    anzi no , spetta un attimo

  6. #6
    uff no quello non centra nulla(adesso mi ammazzi)

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Quello che tu chiami nomecampo e` l'oggetto del campo?

    E come e` fatta la funzione trim() ?
    Non esiste come funzione predefinita in JS, e potrebbe in qualche modo interagire.

    ...
    forse dovresti controllare attentamente le condizioni al contorno.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    function trim(stringa)
    {
    var s = new String(stringa);
    return s.replace(/^\s+|\s+$/g,'');
    };


    nomecampo sarebbe document.nomeform.nomecampoditesto

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Allora nomecampo e` proprio l'oggetto, non il nome.

    La funzione trim funziona in tutti i casi?
    Anche con una stringa che ha spazi sia all'inizio che alla fine? (perche` io la avrei fatta in maniera leggermente diversa)

    (nota che nomecampoAlert lo puoi ricavare anche con:
    nomecampo.name
    che pero` e` il valore attribuito nell'attributo name).


    Ancora una domanda (vedi che mi sto arrampicando sugli specchi):
    I campi sono ambedue dello stesso tipo?

    E ancora: Usi per caso un DOCTYPE nella pagina?
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  10. #10
    niente doctype e campi dello stesso tipo.
    hey ma lascia stare tanto dall'alto mi arrivano ordini di fare lo stesso il doppio controllo nell'if :master:

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.