Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135

    Espressioni Regolari (RegExp)

    ... incubo delle RegExp...

    Devo controllare che la sintassi sia:
    codice:
    COGNOME Nome
    senza numeri, senza caratteri strani, etc... solo uno spazio tra il COGNOME (sempre maiuscolo) ed il nome (sempre minuscolo... meno la prima lettera ... ho scritto così ma non funziona...
    codice:
     var RegExp_cognome = new RegExp(/^[a-zA-Z][a-zA-Z]$/);
    dove è l'errore????

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ma il dato proviene dalla stesso campo?

    Allora la regExp dovrebbe essere:

    /^[A-Z]+\s[A-Z][a-z]+$/

    al posto di \s forse ti potrebbe andar meglio uno spazio.

    Pero` cosi` non interpreti cognomi come "di Bella" e neppure nomi come "Maria Teresa"
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Il valore proviene dallo stesso campo...
    E per i cognomi (ad esempio) Di Giovanni Salvatore Arturo ??? :master:

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Allora potresti pensare ad una RegExp cosi`:

    /$[A-Z\']{2,}( [A-Z]{2,})*( [A-Z][a-z]+)+$/

    Dove l'apostrofo serve per (ad esempio)
    D'ONOFRIO
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    grazie, ma qualcosa non funziona...
    codice:
    D'ONOFRIO Giuseppe
    non viene validato.
    codice:
     DI GIOVANNI Pasquale
    non viene validato...

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Anzitutto vedo ora che il backslash davanti all'apice non si vede (per lo meno nel mio browser), ma devi mettercelo lo stesso.

    Poi forse ci vogliono dei ?, ad esempio:
    codice:
    /$[A-Z\\']{2,}?( [A-Z]{2,}?)*?( [A-Z][a-z]+?)+$/
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    codice:
    var RegExp_newid1 = new RegExp(/$[A-Z\']{2,}?( [A-Z]{2,}?)*?( [A-Z][a-z]+?)+$/);
    ... adesso non convalida più nemmeno
    codice:
    DIGIOVANNI Piero

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Che strumento usi per la convlida? Il metodo .test() delle RegExp oppure il .match() delle stringhe?

    Per testare il funzionamento delle varie parti della RegExp, occorrerebbe inserire degli alert, per cui se posti lo script che usi posso provare ad inserirli.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    codice:
    <script language="javascript">
    <!-- 
    function submitIt(Form){
    
    var RegExp_cognome = new RegExp(/$[A-Z\']{2,}?( [A-Z]{2,}?)*?( [A-Z][a-z]+?)+$/);
    
      
      if (!RegExp_cognome.test(cognome)) {
      
        alert("Sintassi non valida");
        document.Form.cognome.focus();
        return false;
      }
      
        
     
      return true;
    }
    
    //-->
    </script>

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Allora per testare le varie parti dovrebbe bastere:
    1. inserire delle parentesi nella RegExp;
    2. testarne il valore:
    codice:
    var RegExp_cognome = new RegExp(/$([A-Z']{2,}?)( [A-Z]{2,}?)*?( [A-Z][a-z]+?)+$/);
      
      if (!RegExp_cognome.test(cognome)) {
        alert("cogn1="+$1+"  cogn2="+$2+"  nome="+$3);
    
        alert("Sintassi non valida");
        document.Form.cognome.focus();
        return false;
      }
    Nota che in caso di utilizzo multiplo di una parentesi (seconda parte del cognome e nome) dovrebbe visualizzare solo uno degli utilizzi.
    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 © 2025 vBulletin Solutions, Inc. All rights reserved.