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

    Inserire 2 pattern nello stesso campo form

    <div class="col-sm-10 col-xs-12 usd ">
    <input type="text" name="userCRS" value=""
    class="form-control"
    id="userCRS"
    pattern="?????"
    placeholder=""
    title="Formato SDI"
    required="required">
    </div>


    come posso ottenere un pattern che mi riconosca la fatturazione elettronica, cioè, se las tringa immessa è una PEC(formato mail), oppure un codice SDI (alfanumerico di lunghezza 7 tutto maiuscolo)??

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Cosa ha a che fare con PHP?
    Se vuoi farlo in PHP devi inviare il dato, nello script che lo riceve metti un if con i 2 pattern in or, oppure se vuoi anche sapere quale dei due è stato inserito metti un if che controlli un pattern, un else if che controlli l'altro ed infine un else che catturi i pattern non validi.

  3. #3
    Grazie mille, ho provato una cosa simile ma poi ho deciso di bloccare l' inserimento direttametne dalla maschera riuscendo a costruire il pattern che mi serviva!
    pattern=".[a-z0-9!#$%&'*+/=?^_`{|}~.-]+@[a-z0-9-]+(\.[a-z0-9-]+)*|.[A-Z0-9]{6,7}"
    grazie ancora dell' aiuto!

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Visto che vuoi farlo direttamente dal form, sposto in html5.

  5. #5
    Utente di HTML.it L'avatar di ninja72
    Registrato dal
    May 2020
    residenza
    -
    Messaggi
    319
    prova in questo modo.
    codice:
     pattern="^[A-Z0-9]{7}$|^[a-z0-9._-]+@[a-z0-9.-]+\.[a-z]{2,4}$"

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Occhio che non è così semplice riconoscere le email valide.
    La regex indicata riconosce come validi ad esempio gli indirizzi
    lupo..alberto@dominio.tld (non sono consentiti punti consecutivi)
    .lupoalberto@dominio.tld (un indirizzo non può cominciare col punto)

    così come riconosce errati gli indirizzi
    lupoalberto@dominio.academy (esistono TLD più lunghi di 4 caratteri, come quello indicato)
    lupoあalberto@dominio.tld (la RFC 6530 introduce anche l'uso di caratteri non latini)

    e via discorrendo.

    Facendo delle ricerche si trovano regex complicatissime per verificare la correttezza degli indirizzi email, ma nonostante tale impegno nessuna copre tutti i casi possibili.

    Qui ne trovi una che per stessa ammissione dell'autore è corretta al 99.99%, perché comunque sa che indirizzi non catturati sono così particolari che a nessuno viene in mente di farsi un'email così.
    Resta inteso che questa regex copre la RFC 5322 e quindi non copre indirizzi con caratteri non latini e nuove altre regole.

    Edit: leggendola, non si accorge neanche questa dei punti consecutivi o iniziali, forse l'autore è stato un po' ottimista.
    Ultima modifica di Alhazred; 06-10-2020 a 11:07

  7. #7
    Utente di HTML.it L'avatar di ninja72
    Registrato dal
    May 2020
    residenza
    -
    Messaggi
    319
    Diciamo che voleva essere un esempio spartano, non ho avuto il tempo di testare bene il tutto, comunque come dici tu il discorso di validazione email lato frontend non è cosi semplice come sembra, ed infatti molti consigliano di farlo da backend magari con invio di token per una eventuale conferma da parte dell'utente.

Tag per questa discussione

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