Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente bannato L'avatar di Ht28
    Registrato dal
    May 2006
    Messaggi
    1,544

    Regex accetta più volte il trattino

    Ho fatto questa regex che dovrebbe accettare il trattino una volta sola prima della chiocciola, invece se metto così me la valida k-k-h-h@...

    Perché se è vero che il punto di domanda vuol "zero o una volta", perché allora accetta il trattino più volte?

    Codice PHP:
    var reg = new RegExp("^([A-Za-z0-9]([-]?([A-Za-z0-9]\.)*[A-Za-z0-9]+)*@([A-Za-z0-9]+(\.[a-z]{2,6})))$"); 

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Il risultato e' perfettamente coerente: l'hai messo, seguito da altri caratteri, all'interno di parentesi tonde seguite dal carattere * ... che come sai vuol dire un qualunque numero di volte.
    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
    Utente bannato L'avatar di Ht28
    Registrato dal
    May 2006
    Messaggi
    1,544
    Originariamente inviato da br1
    Il risultato e' perfettamente coerente: l'hai messo, seguito da altri caratteri, all'interno di parentesi tonde seguite dal carattere * ... che come sai vuol dire un qualunque numero di volte.
    Si è vero, ma anche se metto così non cambia


    Codice PHP:
    var reg = new RegExp("^([A-Za-z0-9][-]?([A-Za-z0-9]\.)*[A-Za-z0-9]+@... 

  4. #4
    Originariamente inviato da Ht28
    Si è vero, ma anche se metto così non cambia


    Codice PHP:
    var reg = new RegExp("^([A-Za-z0-9][-]?([A-Za-z0-9]\.)*[A-Za-z0-9]+@... 
    Ciao cosi ad occhio è perchè tiene conto del sottogruppo non della sequanza se metti -- dovrebbe darti false..

    cosa vuoi fare? magari si può migliorare..

  5. #5
    Utente bannato L'avatar di Ht28
    Registrato dal
    May 2006
    Messaggi
    1,544
    Originariamente inviato da Friko85
    Ciao cosi ad occhio è perchè tiene conto del sottogruppo non della sequanza se metti -- dovrebbe darti false..

    cosa vuoi fare? magari si può migliorare..
    Sto tentando di mettere nell'username un solo trattino ma non all'inizio ne alla fine, e il punto tutte le volte che voglio e non all'inizio ne alla fine e non vicino al trattino

  6. #6
    Utente bannato L'avatar di Ht28
    Registrato dal
    May 2006
    Messaggi
    1,544
    Originariamente inviato da Friko85
    Ciao cosi ad occhio è perchè tiene conto del sottogruppo non della sequanza se metti -- dovrebbe darti false..

    cosa vuoi fare? magari si può migliorare..
    Non vorrei sbagliarmi ma forse ho risolto, provala anche tu

    Codice PHP:
    new RegExp("^([A-Za-z0-9](([A-Za-z0-9]*[.]?[A-Za-z0-9]+))*([-]?[A-Za-z0-9]+)?(([A-Za-z0-9]*[.]?[A-Za-z0-9]+))*@([A-Za-z0-9]+(\.[a-z]{2,6})))$"); 
    1. accetta il punto molte volte ma non consecutive e non all'inizio o alla fine
    2. accetta il trattino una sola volta, non vicino al punto e non all'inizio o alla fine
    3. un solo carattere iniziale

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.