简单化一点, 我们可以用eregi()取代ereg().eregi()对大小写不敏感, 我们就不需要指定两个范围"a-z" 和"A-Z" – 只需要指定一个就可以了:
^[_a-z0-9-]+(.[_a-z0-9-]+)*$
后面的服务器名字也是一样,但要去掉下划线:
^[a-z0-9-]+(.[a-z0-9-]+)*$
Done. 现在只需要用”@”把两部分连接:
^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*$
这就是完整的email认证匹配模式了,只需要调用
eregi('^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*$ ',$eamil)
就可以得到是否为email了。
正则表达式的其他用法
提取字符串
ereg() and eregi() 有一个特性是允许用户通过正则表达式去提取字符串的一部分(具体用法你可以阅读手册). 比如说,我们想从path/URL 提取文件名 – 下面的代码就是你需要:
ereg("([^\/]*)$", $pathOrUrl, $regs);
echo $regs[1];
高级的代换
ereg_replace() 和eregi_replace()也是非常有用的: 假如我们想把所有的间隔负号都替换成逗号:
ereg_replace("[ ]+", ",", trim($str));