It works fine, but I'm not sure whether what I think is a valid email address is correct:
Code: Select all
<?php
$boolValid = preg_match( '/(?i)^(їa-z0-9.\-_]+@їa-z0-9.\-_]+)$/',$email);
?>Moderator: General Moderators
Code: Select all
<?php
$boolValid = preg_match( '/(?i)^(їa-z0-9.\-_]+@їa-z0-9.\-_]+)$/',$email);
?>Code: Select all
<?php
function valid_email_syntax($email){
return(preg_match( '/(?i)'.
'^(([a-z0-9\-_]\.?)+[a-z0-9\-_]@'.
'('.
'('.
'(([a-z0-9\-_])+\.)*(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|'.
'ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|'.
'ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|'.
'de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|'.
'fi|fj|fk|fm|fo|fr|'.
'ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|'.
'hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|'.
'jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|'.
'la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|'.
'na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|'.
'sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw'.
')$'.
')'.
')'.
'|'.
'(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i',$email));
}
?>Code: Select all
preg_match('/^[\w\.\-]+@[\w\.\-]+\.\w\w\w?$/', $email)Code: Select all
$str = ereg_replace( "^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*[0-9a-z]([-.]?[0-9a-z])*.[a-z]{3,4}$", "<a href="mailto:\\0">\\0</a>", $str );Code: Select all
<?php
"^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*[0-9a-z]([-.]?[0-9a-z])*.[a-z]{3,4}$"
?>Code: Select all
<?php
"^[0-9a-z]([-_\.]?[0-9a-z])*@[0-9a-z]([-\.]?[0-9a-z])*[0-9a-z]([-\.]?[0-9a-z])*\.?[a-z]{3,4}$"
?>[:alpha:] is purely posix. and \w is perl. perl is not local dependant. the shorts pertain to ascii stretches. it will only get what i mentioned. and ? is not needed after the end delimiter, and i'm not sure that it'll be case insensitive. remember, perl and posix are completely differnet. what you use for posix may not work for perl and visa versa. for case insenitivity in perl, using | as a delimiter, with global search/replacement, it's |pattern|gi or |pattern|igHeavy wrote:In humble response to m3rajk:
The "(?i)" part of my pattern makes it case insensitive...
I wanted to strike out all scandinavian characters from beeing matched. That's why I didn't use any \w or [:alpha:] or such locale dependent things. However, I don't know how locale dependent \w is.
I started out doing regex one month ago, so I am not yet very guru with it. But I have tested my pattern thoroughly and it pleases me for the moment. I have not yet found any bug in it.
Tell me if you do...
My pattern disallows email names that start or end with a dot and that applies to the domain name as well. I think it is good enough for me, but I agree I don't HAVE to test for existing top domain names. As well, testing for existing top domain names makes me need to be updated on new top domain names when they arrive. I might remove it, but it works right now...
Code: Select all
preg_match('/^\w[\w\.\-]+@[\w\.\-]+\.\w\w\w?$/', $email)Your {3,4} stops it from matching all the two character country codes. It only matches the org/com/mil/net/info/coop/edu type top levels.mikusan wrote:While on topic could anyone help me with mine:
For some obscure reason i cannot figure out why it will not accept emails that are like abc@123.server.ca
I have added some trash but i still can't get it working...thanks for the help!!Code: Select all
$str = ereg_replace( "^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*[0-9a-z]([-.]?[0-9a-z])*.[a-z]{3,4}$", "<a href="mailto:\\0">\\0</a>", $str );
Hmm... But it works well...m3rajk wrote:and i'm not sure that it'll be case insensitive