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

    Aiuto per una Regular Expression

    Ho trovato su internet questa espressione regolare, ^([ 01]?[0-9]|2[0-3])(: ([0-5][0-9]))?$ che mi permette di validare un orario nel formato:
    08:00
    visto che con le espressioni regolari non sono molto ferrato, sapreste dirmi come posso creare un'espressione per validare una stringa del genere:
    08:00-11:00
    quindi sarebbero due orari con il trattino al centro.

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Le domande sulle espressioni regolari non sono necessariamente legate a un linguaggio specifico, quindi vanno in Programmazione.

    Nel merito, l'espressione mi sembra già molto complicata, e include peraltro il controllo di alcune casistiche (ad esempio, supporta ore che iniziano per "0" oppure "1", quindi il formato 24h è escluso).

    Io partirei da qualcosa di più semplice, eliminando i casi particolari e i gruppi inseriti nell'espressione, riducendola a questa:

    codice:
    ^\d{2}\:\d{2}\-\d{2}\:\d{2}$
    Se devi poi fare delle estrazioni di valori specifici, o controllare la validità di orari e minuti, si può vedere come integrarla nel modo opportuno.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Le domande sulle espressioni regolari non sono necessariamente legate a un linguaggio specifico, quindi vanno in Programmazione.


    Con l'espressione che ho trovato io(sarà pure più complicata ma per me sono tutte uguali ) riesco a validare orari che vanno dalle 00:00 alle 23:59, invece ho notato che con l'espressione postata da te riesco ad inserire range di orari separati dal trattino ma non c'è controllo della validità dell'ora.
    Riusciamo ad integrarla con il controllo della validità?
    Thanks

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Originariamente inviato da mardok30
    Con l'espressione che ho trovato io(sarà pure più complicata ma per me sono tutte uguali ) riesco a validare orari che vanno dalle 00:00 alle 23:59
    Sì, in effetti non l'avevo letta bene e mi era sfuggito il carattere "|" con cui si ponevano diverse alternative, supportando anche il formato delle 24 ore.

    Originariamente inviato da mardok30
    invece ho notato che con l'espressione postata da te riesco ad inserire range di orari separati dal trattino ma non c'è controllo della validità dell'ora.
    Esattamente. Ma l'avevo specificato anche io...

    Originariamente inviato da mardok30
    Riusciamo ad integrarla con il controllo della validità?
    A questo punto, se ti serve un controllo di validazione, credo che l'espressione individuata da te sia quella più completa, e che modificando quella scritta da me si arrivi sostanzialmente a qualcosa di molto simile a quella che hai trovato.

    Credo che sia sufficiente duplicare l'espressione che valida l'ora concatenandola con se stessa, unendola con il supporto al carattere "-", per riuscire a validare un intervallo di date.

    Ad esempio:

    codice:
    ^([01]?[0-9]|2[0-3])(:([0-5][0-9]))-([01]?[0-9]|2[0-3])(:([0-5][0-9]))$
    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Avevo appena trovato, facendo vari tentativi, una soluzione uguale a quella che mi hai postato. Ero venuto a postarla ed ho visto che già avevi postato la tua. Comunque l'importante è aver risolto.
    Grazie

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.