Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    javascript fallisce nel controllare i caratteri alfanumerici

    Ciao! Ho un problema con un controllo sui caratteri della casella di testo della mia form:

    ecco la function:

    function ctr_name(obj){
    var expr = /^[a-zA-Z0-9]/;

    // Controllo che ci siano solo caratteri alfanumerici
    if (!expr.test(obj.value) && obj.value != ""){
    alert("Sono ammesse solo lettere e numeri!");
    obj.value = "";
    }

    Succede che talvolta accetta tranquillamente anche caratteri alfanumerici, con frequenza non assolutamente trascurabile. Come mai un "miracolo" del genere?

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Quella espressione dice solo che la stringa deve iniziare con un carattere alfanumerico... non mette restrizioni sui successivi.

    function ctr_name(obj){
    var expr = /^[a-zA-Z0-9]*$/;

    // Controllo che ci siano solo caratteri alfanumerici
    if ( (!expr.test(obj.value)) && obj.value != ""){
    alert("Sono ammesse solo lettere e numeri!");
    obj.value = "";
    }

    Non ricordo la priorita' di esecuzione di ! e && , per sicurezza e poltronite ho aggiunto le parentesi
    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
    pensandoci bene controllare che la stringa sia vuota non serve a nulla perchè se è vuota comunque non trova caratteri non alfanumerici, perchè non trova affatto caratteri..giusto?
    Dove posso trovare una buona guida sui pattern, che faccio difficoltà? molte grazie per la tempestività.

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Con "regular expression" google fornisce ottimi spunti...
    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

  5. #5
    var expr = /^[a-zA-Z0-9]*$/

    ma come mai ci va ^ e poi anche $?
    Significa che viene controllata la presenza di caratteri alfanumerici all'inizio e alla fine della stringa.
    Non è identico scrivere

    var expr = /[a-zA-Z0-9]* /

    ??
    Questo non li cerca comunque sia all'inizio che alla fine?

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da MarvinivraM
    Questo non li cerca comunque sia all'inizio che alla fine?
    No, li cerca ovunque e non impedisce che all'inizio e/o alla fine della stringa vi siano caratteri non permessi.

    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

  7. #7
    chiarissimo! Grazie e buon 15 agosto!

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.