加强正则学习

http://deerchao.net/tutorials/regex/regex.htm

http://www.jb51.net/article/10189.htm 

 ^开始 $结束

【10.28】

email 验证

最简洁版


$str="test@bb.com";
preg_match('/^\w+\@\w+\.\w+$/',$str,$m);
print_r($m);

正则解析:

"\w" 代表 匹配字母数字下划线汉字

"+"  重复1次或多次【我的理解。必须出现一次或者多次】

"\@" "\"这个符号是反义 表示 字符串一定要出现@字符,

\w+\.\w+” 这个整个部分是后面部分

 \w+已经解释过了(此处代表域名) \.反义字符必须出现"."域名

 

现在我们来看简洁版本的bug

1.许多用户邮箱是这样的“jason.zhang@7taou.com”,"jason_zy@live.cn"  "\w"无法匹配“._”2个字符

2.域名只能是数字 - ,字母组成  

3.域名结尾“.com .net .cn”。最大支持 3位 最小2 位 ,而且只能是字母

1、[a-zA-Z0-9_.]+ 

\@

2、[a-zA-Z0-9-.]+

3、[a-zA-Z]{2,3}


 最终版:

$str="jason.zhang@bb.ttt.com";
preg_match('/^[a-zA-Z0-9_.]+\@[a-zA-Z0-9-.]+[a-zA-Z]{2,3}$/',$str,$m);
print_r($m);



 看到此的朋友。请你仔细理解每个字符。正则也就那几个字符,我困扰了许久。一直没有认真看过。今天开始学习

 

目前可以检查正常email了。可能还有其他情况。还请提出。我加以修正