Avatar billede OnkelJoakim Novice
13. januar 2005 - 05:21 Der er 7 kommentarer og
1 løsning

ValidationExpression til email

Hej Eksperter!


Jeg er helt grøn indefor asp.net. Jeg har dog et spg. til ValidationExpression til emails! Jeg vil gerne checke om en email er valid. De koder jeg kan se rundt omkring på nettet checker det meste af en email men dog ikke om mailadressen hedder noget i stil med test@test.andersand (altså extension). Den vil jeg gerne have til at være mellem 2 og 4 tegn da der ikke er nogle ext. som er på 1 tegn eller på flere end 4 (tror jeg nok).

Jeg har følgende validation:

<asp:RegularExpressionValidator
  ID="RegularExpressionValidator1"
  ControlToValidate="Email"
  ValidationExpression="[\w\.-]+(\+[\w-]*)?@([\w-]+\.)+[\w-]+"
  Display="Dynamic"
  Font-Name="verdana"
  Font-Size="9pt"
  ErrorMessage="Must use a valid email address."
  runat="server">
</asp:RegularExpressionValidator>

Kan i hjælpe med dette?
Avatar billede arne_v Ekspert
13. januar 2005 - 07:33 #1
Prøv:

ValidationExpression="[\w\.-]+(\+[\w-]*)?@([\w-]+\.)+[\w-]{2,4}"
Avatar billede OnkelJoakim Novice
13. januar 2005 - 07:52 #2
Hej Arne1

Det dutter ikke :-(
Avatar billede arne_v Ekspert
13. januar 2005 - 08:04 #3
Mystisk - det burde sikre at de sidste er på 2-4 tegn.
Avatar billede arne_v Ekspert
13. januar 2005 - 08:05 #4
Hvad hvis du gør den første non greedy.

ValidationExpression="[\w\.-]+(\+[\w-]*)?@([\w-]+\.)+?[\w-]{2,4}"
Avatar billede OnkelJoakim Novice
13. januar 2005 - 08:15 #5
Hej Arne!

Jeg er ikke helt med vedr non greed. Min kode ser ud som følgende:

<%@ Page Language="VB" AutoEventWireup="false" CompileWith="Default.aspx.vb" ClassName="Default_aspx" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<script runat="server">

Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        If Page.IsValid = True Then
            Dim NewAccount As ABC72.Users.UserDB = New ABC72.Users.UserDB()
            Dim AddNewUser As String = NewAccount.AddUser(Server.HtmlEncode(UserName.Text), FullName.Text, Email.Text, Password.Text)
           
            If AddNewUser <> "" Then
                'Create cookie with user
                FormsAuthentication.SetAuthCookie(AddNewUser, False)
               
                ' Store the user's fullname in a cookie for personalization purposes
                Response.Cookies("AlbertslundBillard").Value = Server.HtmlEncode(FullName.Text)
               
                'Redirect user to confirmationpage
                Response.Redirect("AccountSuccess.aspx?Name=")
            Else
                MyError.Text = "Registration failed:&nbsp; That email address is already registered.<br><img align=left height=1 width=92 src=images/1x1.gif>"
            End If
            Response.Write(AddNewUser)
        End If
       
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Add new user to database</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label id="Label1" CssClass="ErrorText" EnableViewState="false" runat="Server" />&nbsp;&nbsp;<br />
        &nbsp;<asp:Label ID="MyError" Runat="server"></asp:Label>
        <br />
        &nbsp;<br />
        &nbsp;&nbsp;<br />
        <table style="width: 726px; height: 71px">
            <tr>
                <td style="width: 138px">
           
                <asp:Label ID="lblUsername" Runat="server" Text="Username"></asp:Label>
                </td>
                <td colspan="2">
                <asp:TextBox ID="UserName" Runat="server"></asp:TextBox>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" Runat="server" ErrorMessage="Feltet må ikke være tomt" ControlToValidate="UserName" Display="Dynamic">
                    </asp:RequiredFieldValidator></td>
            </tr>
            <tr>
                <td style="width: 138px">
                <asp:Label ID="lblFullname" Runat="server" Text="Full name"></asp:Label>
                </td>
                <td colspan="2">
                <asp:TextBox ID="FullName" Runat="server"></asp:TextBox>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidator2" Runat="server" ErrorMessage="Feltet må ikke være tomt"
                        Display="Dynamic" ControlToValidate="FullName">
                    </asp:RequiredFieldValidator>
                </td>
            </tr>
            <tr>
                <td style="width: 138px">
                <asp:Label ID="lblEmail" Runat="server" Text="Email"></asp:Label>
                </td>
                <td colspan="2">
                <asp:TextBox ID="Email" Runat="server"></asp:TextBox>
                <asp:RegularExpressionValidator ID="RegularExpressionValidator1" ControlToValidate="Email" ValidationExpression="[\w\.-]+(\+[\w-]*)?@([\w-]+\.)+[\w-]{2, 4}" Display="Dynamic" Font-Name="verdana" Font-Size="9pt" ErrorMessage="Must use a valid email address." runat="server"></asp:RegularExpressionValidator>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidator3" Runat="server" ErrorMessage="Feltet må ikke være tomt"
                        Display="Dynamic" ControlToValidate="Email">
                    </asp:RequiredFieldValidator>
                   
                </td>
            </tr>
            <tr>
                <td style="width: 138px">
                <asp:Label ID="lblPassword" Runat="server" Text="Password"></asp:Label>
                </td>
                <td colspan="2">
                <asp:TextBox ID="Password" Runat="server"></asp:TextBox>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidator4" Runat="server" ErrorMessage="Feltet må ikke være tomt"
                        Display="Dynamic" ControlToValidate="Password">
                    </asp:RequiredFieldValidator>
                </td>
            </tr>
        </table>
    </div>
        <asp:Button ID="Button1" Runat="server" Text="Button" OnClick="Button1_Click" />
    </form>
</body>
</html>
Avatar billede arne_v Ekspert
13. januar 2005 - 08:16 #6
non greedy = se 08:05:20 med ? efter +
Avatar billede OnkelJoakim Novice
13. januar 2005 - 08:23 #7
Heeeeeeeeeej! 

Det virker nu med "[\w\.-]+(\+[\w-]*)?@([\w-]+\.)+?[\w-]{2,4}"

Smider du et svar så du kan få dine points ;-)

Tak for hjælpen!
Avatar billede arne_v Ekspert
13. januar 2005 - 08:33 #8
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester