14. maj 2002 - 10:59Der er
14 kommentarer og 3 løsninger
Inputmaske
Jeg skal lave en inputmaske på en mail adresse hvordan gør jeg det @ skal være konstant og så skal jeg jo kunne indtaste påhøjre og venstre side af det ????
Brug af AI afslører de svagheder, virksomheder allerede har opbygget gennem års cloud-transformation, nye SaaS-løsninger og fragmenterede sikkerhedssystemer.
Du kan prøve med CCCCCCCC\@CCCCCCCCCCCCC eller noget i den stil, men det kræver at e-mail adressen altid har samme antal tegn før @. Ellrs bliver der bare fyldt op med det, der kommer efter.
Public Function IsEMailAddress(ByVal sEmail As String, _ Optional ByRef sReason As String) As Boolean
Dim sPreffix As String Dim sSuffix As String Dim sMiddle As String Dim nCharacter As Integer Dim sBuffer As String
sEmail = Trim(sEmail)
If Len(sEmail) < 8 Then IsEMailAddress = False sReason = "Too short" Exit Function End If
If InStr(sEmail, "@") = 0 Then IsEMailAddress = False sReason = "Missing the @" Exit Function End If
If InStr(InStr(sEmail, "@") + 1, sEmail, "@") <> 0 Then IsEMailAddress = False sReason = "Too many @" Exit Function End If
If InStr(sEmail, ".") = 0 Then IsEMailAddress = False sReason = "Missing the period" Exit Function End If
If InStr(sEmail, "@") = 1 Or InStr(sEmail, "@") = Len(sEmail) Or _ InStr(sEmail, ".") = 1 Or InStr(sEmail, ".") = Len(sEmail) Then IsEMailAddress = False sReason = "Invalid format" Exit Function End If
For nCharacter = 1 To Len(sEmail) sBuffer = Mid$(sEmail, nCharacter, 1) If Not (LCase(sBuffer) Like "[a-z]" Or sBuffer = "@" Or _ sBuffer = "." Or sBuffer = "-" Or sBuffer = "_" Or _ IsNumeric(sBuffer)) Then: IsEMailAddress = _ False: sReason = "Invalid character": Exit Function Next nCharacter
nCharacter = 0
On Error Resume Next
sBuffer = Right(sEmail, 4) If InStr(sBuffer, ".") = 0 Then GoTo TooLong: If Left(sBuffer, 1) = "." Then sBuffer = Right(sBuffer, 3) If Left(Right(sBuffer, 3), 1) = "." Then sBuffer = Right(sBuffer, 2) If Left(Right(sBuffer, 2), 1) = "." Then sBuffer = Right(sBuffer, 1)
If Len(sBuffer) < 2 Then IsEMailAddress = False sReason = "Suffix too short" Exit Function End If
TooLong:
If Len(sBuffer) > 3 Then IsEMailAddress = False sReason = "Suffix too long" Exit Function End If
Hvis du absolut vil have @ stående som konstant, kan du jo dele adressen op i tre unboundede felter og så samle dem i et fjerde felt som du binder til database.
Et alternativ kunne være at lave to felter. Et til brugernavnsdelen og et til servernavnsdelen og så konkatenere dem med et @ i forbindelse med en forespørgsel, når de skal anvendes.
men derudover kræver din funktion jo at @ er indtastet! Og som jeg forstod sapørgsmålet, var det netop det j30 ville undgå ved at lave ne inputmaske. Din funktion undersøger "bare" om noget der er indtastes er en (kan være en) e-mail adresse.
Du må selv vælge, du har fået flere løsninger. 1:brug 3 felter og sæt den sammen til 1 felt. 2:brug 1 felt og check formatet via funktionen IsEMailAddress
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.