Mail Kontrolle Email-Adress


chainy24

Mitglied
Hallo,

habe ein Formular, in dem auch die Emailadresse eingegeben werden muss, um dann eine Bestätigungsemail schicken zu können. Jetzt würde ich gerne eine Prüfung einbauen, die checkt ob die Email richtig angegeben wird. Muss nicht unbedingt eine Gültigkeit sein, sonder einfach dass mir keiner "E-Mail: eeeiiiiwwwjkkk" reinschreiben kann. Habe schon ewig gesucht, finde aber immer nur php-Anweisungen wie:
PHP:
if((!(eregi('^[a-z0-9_\.-]+@[a-z0-9_-]+\.[a-z0-9_\.-]+$',$email)))&&(strlen($email)>0)||$email=="")
glaube, dass dieser Code der richtige wäre, wenn ich ihn in ASP übersetzten könnte:confused:

Kann mir da bitte jemand weiterhelfen?
 

TheClansman

Grünschnabel
Moin Chainy,

in asp.net würd's folgendermaßen gehen:

Code:
<form id="form1" runat="server">
    <asp:TextBox ID="txtName" runat="server"/>
    <asp:Button ID="btnSubmit" runat="server" Text="Submit" />
    <asp:RegularExpressionValidator ID="regexpName" runat="server"     
                                    ErrorMessage="This expression does not validate." 
                                    ControlToValidate="txtName"     
                                    ValidationExpression="^[a-zA-Z'.\s]{1,40}$" />
</form>

In reinem asp bzw. VBScript, könntest du dir so'ne ereg Funktion selbst schreiben:

Code:
function ereg(strOriginalString, strPattern, varIgnoreCase)  
' Function matches pattern, returns true or false  
' varIgnoreCase must be TRUE (match is case insensitive) or FALSE (match is case sensitive)  
dim objRegExp : set objRegExp = new RegExp  
with objRegExp    
.Pattern = strPattern   
.IgnoreCase = varIgnoreCase    
.Global = True  
end with  ereg = objRegExp.test(strOriginalString)  
set objRegExp = nothing
end function

Gruß,
Clansman
 

chainy24

Mitglied
Hi,

Ich arbeite in asp/VBScript, wenn ich da die function von dir verwende, mache ich dass dann so?:
Code:
If (Trim(email)="" or function ereg(strOriginalString, strPattern, varIgnoreCase)=false) Then 
 ErrorText = ErrorText & "E-Mail<br />" 
 validationOK=false
end if

Die komplete Funktion würde ich in meine "functions.asp" reinschreiben.
Aber muss ich nicht noch die variablen "strPattern" und "varIgnoreCase" definieren?
Also:
Code:
strPattern = (^[a-zA-Z'.\s]{1,40}$")

lg Chainy24
 

TheClansman

Grünschnabel
Moin,

ja, genau so müsstest du's einsetzen können.

Das "varIgnoreCase" ist eine boolesche Variable, die festlegt, ob dein RegExp Objekt auf Groß- und/oder Kleinschreibung achtet.
Als wär der Funktionsaufruf ereg("user@example.com",strPattern, false), da Groß- und Kleinschreibung bei eMailadressen ja Wurst ist.

Deine RegExp würde allerding genau solche eMailadressen, die du eigentlich filtern willst, zulassen, wenn ich das grad richtig sehe.

Eine wirklich gültige eMailadresse sähe so:
Code:
/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/
aus :)

Gruß
Clansman
 

chainy24

Mitglied
Danke,
werd mich morgen vormittag da mal dransetzten und sehen ob ich das hinkriege.
(Werd mich, so wie ich mich kenne nochmal melden;))
gruß
Chainy24
 

chainy24

Mitglied
Hi Clansman
Ich wusste es! Es klappt nicht.
Habe das jetzt so eingefügt:
Code:
Dim strPattern
strPattern = (/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/)
If (Trim(email)="" or function ereg(strOriginalString, strPattern, varIgnoreCase)=false Then 
 ErrorText = ErrorText & "E-Mail<br />" 
 validationOK=false
end if

aber die Seite kann damit nicht angezeigt werden.
Blöde Frage: Ich habe das auf der Seite stehen, an die das Formular geschickt wird. Oder muss ich die Funktion in der Seite einbauen, in der das Formular steht?

lg Chainy24
 

TheClansman

Grünschnabel
Hallo chainy,

ich denke mal schon, dass das in dem formular stehen sollte, das abgesendet wird, dann würdest du dir zumindest das zurückschicken zur ursprungsseite sparen, wenn was nicht so ist, wie du's gerne hättest.

chainy24 hat gesagt.:
Dim strPattern
strPattern = (/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/)

also ich bin zwar kein (echter) vb'ler, aber sollte da nicht: Dim strPattern As String = "einString" stehen?

Gruß
Clansman
 

chainy24

Mitglied
also ich bin zwar kein (echter) vb'ler, aber sollte da nicht: Dim strPattern As String = "einString" stehen?

Ich bin eigentlich gar kein ´ler :). Soll heißen: Ich hab meine Homepage im Dreamweaver erstellt, wo man diese "Codesachen" nicht braucht. Aber da bin ich dann auch auf Grenzen gestoßen, bzw. habe ich einen Teil programmieren lassen - immer schlecht. Und jetzt versuch ich halt noch ein paar Sachen einzubauen.
Aber danke für den Tipp, werd´s nochmal versuchen.

gruß Chainy