我在尝试使用preg_match(或eregi())验证电子邮件地址时遇到了一些问题,如果它更合适的话)。我已经尝试了几种正则表达式模式,无论我做什么似乎都不起作用。PHP - preg_match()和eregi()不工作?
这里的功能:
function validateEmail($email) {
if(eregi('[a-z||0-9]@[a-z||0-9].[a-z]', $email)){
return true;
}
}
任何想法有什么不对?我已经尝试在eregi(和之前使用的preg_match)之前放置一个感叹号,并且将其全部逆转(如预期的那样),但仍未使其正常工作。如果它不传递正则表达式,我希望它返回TRUE。
而我在preg_match函数时没有使用相同的正则表达式,于是我发现了另一个正则表达式,因为我知道你不能混合这两个。对?
在此先感谢!
这不是一个正确的正则表达式。 '[]'只匹配一个字符,'.'被视为匹配*任何*字符的特殊字符,而不是'.'。一个更正确的正则表达式可能是:'[a-z0-9] + @ [a-z0-9] + \。[a-z] {2,4}',尽管如此nikic所说的也太严格了。 –
Frxstrem
2010-09-01 14:09:58
你的正则表达式也不起作用,所以我不认为这是正确的正则表达式。 – Nike 2010-09-01 14:15:40