Fonctions de vérification de la syntaxe d'une chaine

Soyez le premier à donner votre avis sur cette source.

Snippet vu 20 154 fois - Téléchargée 28 fois

Contenu du snippet

Voila une petite classe qui permet d'effectuer des vérifications de saisie sur des chaines, ou d'effectuer des traitements sur celle-ci

Source / Exemple :


Imports System.Text.RegularExpressions
Namespace Text
    Public Class Syntaxe

        Public Function IsEmailValid(ByVal chaine As String) As Boolean
            If (chaine <> "") Then
                Dim RegexpEmail As New Regex("\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*")
                Dim bEmailValid As Boolean = RegexpEmail.IsMatch(chaine)
                If (bEmailValid) Then
                    Return True
                Else
                    Return False
                End If
            Else
                Return False
            End If
        End Function

        Public Function IsDateValidFR(ByVal chaine As String) As Boolean
            If (chaine <> "") Then
                Dim RegexpEmail As New Regex("([0-9]{2,2})(/)([0-9]{2,2})(/)([0-9]{2,2})")
                Dim bEmailValid As Boolean = RegexpEmail.IsMatch(chaine)
                If (bEmailValid) Then
                    Return True
                Else
                    Return False
                End If
            Else
                Return False
            End If
        End Function

        Public Function IsCodePostalValidFR(ByVal chaine As String) As Boolean
            If (chaine <> "") Then
                Dim RegexpEmail As New Regex("[0-9]{5}")
                Dim bEmailValid As Boolean = RegexpEmail.IsMatch(chaine)
                If (bEmailValid) Then
                    Return True
                Else
                    Return False
                End If
            Else
                Return False
            End If
        End Function

        Public Shared Function ReplaceAccents(ByVal chaine As String) As String
            If Not chaine Is Nothing Then
                Dim strTemp As String = chaine
                Dim regE As New Regex("(é|è|ê|ë)")
                Dim regA As New Regex("(à|â|ä)")
                Dim regC As New Regex("(ç)")
                Dim regU As New Regex("(ù)")
                Dim regO As New Regex("(ô)")
                strTemp = regE.Replace(strTemp, "e", 1)
                strTemp = regA.Replace(strTemp, "a", 1)
                strTemp = regC.Replace(strTemp, "c", 1)
                strTemp = regU.Replace(strTemp, "u", 1)
                strTemp = regO.Replace(strTemp, "o", 1)
                Return strTemp
            Else
                Return ""
            End If
        End Function

        Public Shared Function ReplacePonctSpace(ByVal chaine As String) As String
            Dim strTemp As String = ""
            If Not chaine Is Nothing Then
                Dim regE As New Regex("(\.|\?|\;|\,|\:|\)|\(|\!|\'|\""|\/|\\|\-)")
                strTemp = regE.Replace(Replace(chaine, vbCrLf, " "), " ")
                Return strTemp
            End If
        End Function

        Public Shared Function StripHTML(ByVal LeTxt As String) As String
            Dim MaRegex As New System.Text.RegularExpressions.Regex("")
            Dim tmpTxt As String = LeTxt & ""
            tmpTxt = MaRegex.Replace(tmpTxt, "(<[^>]+>)", " ")
            MaRegex = Nothing
            Return tmpTxt
        End Function

        Public Shared Function TrieBulle(ByVal chaine As String) As String
            Dim strTemp As Array = chaine.ToCharArray
            Dim strTemp2 As String
            Dim I As Integer, F As Integer
            Dim car As Char
            Array.Sort(strTemp)
            For I = 0 To (strTemp.Length - 1)
                strTemp2 = strTemp2 & strTemp(I)
            Next
            Return strTemp2
        End Function

        Public Function IsDecimal(ByVal chaine As String) As Boolean
            Dim decimalRegex As New System.Text.RegularExpressions.Regex("^[0-9][.,,][0-9]$")
            Return decimalRegex.IsMatch(chaine)
        End Function

        Public Function IsEntier(ByVal chaine As String) As Boolean
            Dim EntierRegex As New System.Text.RegularExpressions.Regex("^\d+$")
            Return EntierRegex.IsMatch(chaine)
        End Function

        Public Function IsTelephoneFR(ByVal chaine As String) As Boolean
            Dim TelephoneRegex As New System.Text.RegularExpressions.Regex("\d{10,10}")
            Return TelephoneRegex.IsMatch(chaine)
        End Function

        Public Shared Function SupprimeEspace(ByVal Phrase As String)
            Dim ChercheCaratere As String = " "
            Dim strDroite As String
            Dim strGauche As String
            Do While Microsoft.VisualBasic.InStr(Phrase, " ") <> 0
                Dim PlaceEspace As Integer = InStrRev(Phrase, " ")
                strGauche = Microsoft.VisualBasic.Left(Phrase, PlaceEspace - 1)
                strDroite = Microsoft.VisualBasic.Right(Phrase, Len(Phrase) - PlaceEspace)
                Phrase = strGauche & strDroite
            Loop
            Return Phrase
        End Function

    End Class

End Namespace

Conclusion :


un petit exemple sur les expressions régulières qui sont très pratique !

A voir également

Ajouter un commentaire

Commentaires

Messages postés
3
Date d'inscription
mercredi 10 janvier 2007
Statut
Membre
Dernière intervention
23 mai 2010

Un code très util. Merci bien et bonne continuation.
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
2
Pourquoi pas ça pour la function TrieBulle :
Public Shared Function TrieBulle(ByVal chaine As String) As String
Dim strTemp() As Char = chaine.ToCharArray
Dim strTemp2 As String = ""
Dim I As Integer
Array.Sort(strTemp)
For I = 0 To (strTemp.Length - 1)
strTemp2 = strTemp2 & strTemp(I)
Next
Return strTemp2
End Function
non ?
Parce que, quand on a "Option Strict On", le strTemp As System.Array génère une erreur de "late binding" !
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
2
cool ! ça c'est le genre de truc hyper-utile que je n'avais pas envie de refaire moi-même :D
(par pure flemme sans doute)

10/10 !

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.