Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    101

    controllare una stringa

    ho bisogno di controllare che in una form non vega inserito, in un campo stringa, dei caratteri numerici
    poi sempre in una stringa controllare che non ci siano lettere ma solo numeri.
    io controllerei un carattere alla volta ...ma esiste un metodo migliore e piu rapido.
    come faccio a leggere un carattere alla volta di un campo text di una form.
    considerate che il campo e sname della form chiamata forminfo (document.formInfo.sName.value)

    grazie a chi risponde

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Si fa tutto con le RegExp.

    Esempio:
    if(!document.formInfo.sName.value.match(/^[^\d]+$/) {
    alert("non ci possono stare numeri");
    return false;
    }

    caratteri non numerici:
    /^[^\d]+$/

    Solo caratteri numerici:
    /^\d+$/

    Si possono scriver RegExp per tutti (credo) i pattern che vuoi
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    oppure se non hai abbastanza confidenza con le regexp usi la funzione

    isNaN()

    ritorna vero se la stringa non è numero, falso altrimenti.

    Ciao
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    101
    Originariamente inviato da Mich_
    Si fa tutto con le RegExp.

    Esempio:
    if(!document.formInfo.sName.value.match(/^[^\d]+$/) {
    alert("non ci possono stare numeri");
    return false;
    }

    caratteri non numerici:
    /^[^\d]+$/

    Solo caratteri numerici:
    /^\d+$/

    Si possono scriver RegExp per tutti (credo) i pattern che vuoi
    non mi funziona come mai considera che sName e cosi
    <input type="text" name="sName" value="<cut value='${studentAnag.name}' />" />

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Posta lo script come lo hai implementato e i tag del form coinvolti (<form>, <input type="text">, <input type="submit">, ...)
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    101
    ecco la form proviene da una jsp

    <form name="formInfo" method="post" action="store_anagrafica.jsp" onSubmit="if (CheckForm(this)) return(true); else return(false);">
    <table width="100%" align="center" style="background: #FFFFFF;">
    <input type="hidden" name="studentid" value="<cut value="${param.studentid}" />"/>
    <input type="hidden" name="inserimento" value="<cut value="${inserimento}" />"/>
    <tr>
    <%-- NOME STUDENTE --%>
    <td width="200">Nome*:</td>
    <td>
    <input type="text" name="sName" value="<cut value='${studentAnag.name}' />" />
    </td>
    </tr>
    <tr>
    <%-- COGNOME STUDENTE --%>
    <td>Cognome*:</td>
    <td >
    <c:choose>
    <c:when test='${old == "true"}'>
    <input type="text" name="sSurname" value="<cut value='${studentAnag.surname}' />" />
    </c:when>
    <ctherwise>
    <input type="text" name="sSurname"/>
    </ctherwise>
    </c:choose>
    </td>
    </tr>
    </form>


    function CheckForm (FormControl) {
    if(!document.formInfo.sName.value.match(/^[^\d]+$/) {
    alert("non ci possono stare numeri");
    return false;
    }
    else if (document.formInfo.sName.value == "") {
    alert("Prego riempire il campo obbligatorio: Nome ");
    document.formInfo.sName.focus();
    return false
    }

    else if (document.formInfo.sSurname.value == "") {
    alert("Prego riempire il campo obbligatorio: Cognome");
    document.formInfo.sSurname.focus();
    return false
    }
    return true

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    A parte che ci sono pezzi di codice che non c'entrano (per sistemare il JS dovresti postare la pag come arriva al browser, non il sorgente JSP), non vedo errori grossolani.

    Non ha molto senso controllare prima che ci siano solo lettere e dopo che ci sia qualcosa, ma questo non pregiudica il funzionamento.

    Tieni presente che return non e` una funzione, quindi non ci va la parentesi (ma IE accetta anche la tua sintassi).
    Comunque nel tuo caso per l'evento onsubmit si scrive:
    onsubmit="return CheckForm(this);"

    Certo che passi un oggetto alla funzione che poi non usi, ma anche questo non e` un errore: per un corso di programmazione non sarebbe accettato, ma JS se lo beve senza problemi.

    Che tipo di errore ti da`?
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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