Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Regularexpressione per Visual Basic 2012

    Ciao a tutti.

    Ho questo problema:
    per abbreviare la lunghezza del discorso, ho un form di Login, in cui sono presenti 2 TextBox che accettano da un min di 5 caratteri ad un max di 20 e solo lettere maiuscole, minuscole, numeri, underscore, trattino, e lettere accentate.


    Invece di usare un ciclo For su ogni text controllando ogni singolo carattere digitato, le RegularExpression mi sembravano efficaci.

    Ho provato a mettere questo pezzo di codice:
    codice:
    Function Convalida(ByVal Controllo As TextBox, ByVal TipoControllo As Integer)
         Dim Espressione As String = "", Errore As Boolean = False
    
         Select Case TipoControllo
              Case 1 'Nome Utente, Password;
                   Espressione = "[\w-àèéìòù]*"
         End Select
    
         Dim Reg As New Text.RegularExpressions.Regex(Espressione)
    
         If Not (Reg.IsMatch(Controllo.Text)) Then
              Errore = True
         End If
         
         Return(Errore)
    End Function
    lasciando stare che il select case ha solo un case(ma verrà poi incrementato per vari controlli)
    non mi funziona, ovvero anche se la text contiene solo questi caratteri si verifica l'errore e queindi entra in Errore=True.

    Come mai? In cosa sbaglio?

    inoltre la RegularExpression che ho inserito è corretta? e per l'E-mail come diventa?


    Grazie mille.
    --- da enryb_89 ---

  2. #2
    Prima di tutto in questo contesto la regular expression dovrebbe iniziare per ^ e finire con $:

    ^[\w-àèéìòù]*$

    Per controllare anche la lunghezza minima e massima potresti scrivere così:

    ^[\w-àèéìòù]{5,20}$

    Per dettagli sulla sintassi delle regular expression e vari esempi (tra i quali anche quelli relativi agli indirizzi email) ti invito a visitare questo sito:

    http://www.regular-expressions.info/
    Chi non cerca trova.

  3. #3
    Ciao tas e grazie per la risposta.


    Ho provato a mettere la tua soluzione
    ^[\w-àèéìòù]{5,20}$

    e funziona correttamente... accetta tutti i caratteri inseriti nella cornice e tutti gli altri li considera come errore.... tranne uno: ç


    allora ho provato a mettere
    ^[^ç\w-àèéìòù]{5,20}$

    ma mi sfasa tutto e considera tutto errore....


    Grazie.
    --- da enryb_89 ---

  4. #4
    Prova con:
    ^[\^ç\w-àèéìòù]{5,20}$

    Il carattere ^ è un carattere speciale nella sintassi delle regular expression (che nel tuo caso ha il significato di "inverti"), pertanto devi anteporre lo slash per poterlo includere nel gruppo di caratteri.

    Se ti può essere d'aiuto prova questa semplice utility gratuita. permette di verificare la regular expression prima di inserirla nel tuo programma.
    Chi non cerca trova.

  5. #5
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Anche questo non è male:

    Espresso
    http://www.ultrapico.com/

    contiene anche una libreria di esempi che sono utilissimi per chi deve imparare.

  6. #6
    Tas
    A riguardo dell'ultima soluzione che mi hai suggerito... non ho avuto modo di verificare... ora lo faccio.

    Ma visto che riflettendo ho pensato che la user deve iniziare con una lettera devo anteporre [a-zA-Z] e poi nei quantificatori dovrò mettere il valore min da 5 a 4 e quello max da 20 a 19, vero??


    ovvero per avere il primo carattere di sicuro una lettera maiuscola o minuscola e le successive una lettera maiuscola o minuscola, un numero, _, -, . da un min di 5 ad un max di 20 caratteri.


    ovvero da,

    ^([\w-.àèéìòù]{5,20})$ a
    ^([a-zA-Z][\w-.àèéìòù]{4,19})$ ??


    Grazie mille.
    --- da enryb_89 ---

  7. #7
    Si, esatto.
    Chi non cerca trova.

  8. #8
    Garzie mille!!!


    Cmq sto verificando tutti i possibili casi...
    --- da enryb_89 ---

  9. #9
    Scusa ancora Tas... il problema dei caratteri ç e ora anche di ^ me li considera corretti.

    Invece sbaglia....
    --- da enryb_89 ---

  10. #10
    Originariamente inviato da enryb_89
    Scusa ancora Tas... il problema dei caratteri ç e ora anche di ^ me li considera corretti.

    Invece sbaglia....
    ehm.. spiegati...
    Chi non cerca trova.

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.