WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   mail adresse mit neuen domäns prüfen (http://www.wcm.at/forum/showthread.php?t=130632)

Potassium 06.04.2004 23:41

weder mit noch ohne eingeklammerten * funzt es :(
folgende varianten funzen NICHT:
PHP-Code:

if(ereg("^([[[:alpha:]]_-\.]*)@([[[:alpha:]]_-\.]*)\.([[[:alpha:]]_-\.]*)$",$Mail)) {

if(
ereg("^([[[:alpha:]]_-\.*])@([[[:alpha:]]_-\.*])\.([[[:alpha:]]_-\.*])$",$Mail)) {

if(
ereg("^([[:alpha:]_-\.*])@([[:alpha:]_-\.*])\.([[:alpha:]]_-\.*])$",$Mail)) {

if(
ereg("^([[:alpha:]_-\.]*)@([[:alpha:]_-\.]*)\.([[:alpha:]_-\.]*)$",$Mail)) { 


JackLemon 07.04.2004 00:43

bin kein regex-experte, aber steht ein . nicht für ein beliebiges zeichen? imho müsste man den escapen -> \. oder ggf. \\.

außerdem gibt es in der tld (com, net, org) weder zahlen noch _ oder -. solltest beim letzten austruck das :alpha: überdenken und - und _ weglassen.

JackLemon 07.04.2004 00:51

ich nochmal. wie gesagt, bin nicht sicher, aber geht es vielleicht irgendwie so?:

^(A-Z|a-z|0-9|\-|_|\.)*@(A-Z|a-z|0-9|\-|\.)*\.(A-Z|a-z)(A-Z|a-z)(A-Z|a-z)?(A-Z|a-z)?$

Potassium 07.04.2004 01:39

Zitat:

Original geschrieben von JackLemon
bin kein regex-experte, aber steht ein . nicht für ein beliebiges zeichen? imho müsste man den escapen -> \. oder ggf. \\.

außerdem gibt es in der tld (com, net, org) weder zahlen noch _ oder -. solltest beim letzten austruck das :alpha: überdenken und - und _ weglassen.

die zeichen sind eh escaped aber dieseeinfärbe dingsda vom forum nimmt sie wieder weg......

wcm|Tweety 07.04.2004 10:42

du könntest alle möglichen adresse in ein dokument schreiben und überprüfen ob die eigegebene da auch vorkommt ;D
*renn*

käptn 07.04.2004 10:58

ad 1) ereg* ist verammt langsam
ad 2) du musst natürlich die anderen Zeichen auch in der Zeichenklasse berücksichtigen, zB:

[[:alpha:],._-]*

Und [:alnum:] wären alle alphanumerischen Zeichen.

Zum Schluß sollte vielleicht noch etwas erwähnt werden: RTFM! ;)

~

käptn 07.04.2004 11:02

Ach noch was, gerade entdeckt:

Der Bindestrich sollte in einer Zeichneklasse immer zuerst oder zuletzt stehen, wenn er nicht maskiert wird.

~

Potassium 07.04.2004 12:29

wegen RTFM: [:alpha:] kommt weder online vor noch in meinem manuall :(
Code:

if(preg_match("^([[:alpha:],._-]*)@([[:alpha:],._-]*)\.([[:alpha:],._-]*)$^", $Mail)) {
so schauts jetzt aus und es funzt.
danke nochmal an alle :)

käptn 07.04.2004 13:26

Hm - ja, wenn du "@." als E-Mail Adresse ansiehst :)

Verwende / als Begrenzer.
Verwende + statt * wenn min. 1 Zeichen erforderlich ist.

~

Potassium 07.04.2004 13:35

sry aber ich steh schon wieder auf der leitung:
begrenzer?
also vor dem . ein / oder wie?
btw habs jetzt so:

Code:

if(preg_match("^([[:alpha:],._-]+)@([[:alpha:],._-]+)\.([[:alpha:],._-]+)$^", $Mail)) {


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag