2

我是 php 新手,这应该很容易制作,但我现在不知道。我想检查 $address 是否有字符“@”和“。”

<?php 
    function testEmail($address){
        $a = strpos("/@/", $address);
        $b = strpos("/./", $address);
        if (($a != false) && ($b != false)) {
            echo "Email is OK";
        } else {
            echo "Email is NOT OK";
        }
    }
    testEmail("testmail@gmail.com");
?>
4

3 回答 3

9

您可以简单地使用 filter_var 来检查电子邮件的有效性。

$email = 'gaurang@gmail.com'
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
// Email correct
}
else {
//Email not correct
}
于 2012-09-30T15:00:26.887 回答
2

您对这段特定的代码有疑问吗?那么@wroniasty 的回答是正确的。但是你真的不想使用正则表达式来测试电子邮件的有效性,除非你想使用像这样的怪物。

但是,如果您的问题确实是“我如何验证电子邮件地址?” ,然后看看filter_var()

您可以将 filter 传递给它FILTER_VALIDATE_EMAIL,因此它将验证电子邮件地址是否会捕获相当多的边缘情况。

您可以使用以下代码检查地址:

if (filter_var($email_address, FILTER_VALIDATE_EMAIL)) {
    // valid email
} else {
    // invalid email
}
于 2012-09-30T15:02:58.027 回答
0
<?php
function testEmail($address) {
    if (preg_match ( "/\.|@/", $address)) 
       echo "Email OK";
    else
       echo "Email not OK";
}
?>

a better way to check for valid email address:

<?
function isValidEmail($email){
return preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/", $email);
}
?>
于 2012-09-30T14:59:34.833 回答