使用正则表达式验证电子邮件或手机

时间:2016-05-31 04:36:29

标签: php php-5.2

我有一个表单字段。在该字段中,用户可以输入 EMAIL MOBILE 。从PHP页面我有价值。之后,我想检查这是电子邮件ID还是手机号码。假设variable_name表示我希望通过电子邮件发送成功,假设email表示我希望显示移动设备成功,我认为我们必须编写正则表达式,但我不知道如何编写正则表达式这个问题?



mobile




2 个答案:

答案 0 :(得分:1)

您可以使用preg_match

检查输入
$email=$_POST['email'];

$emailPattern = '/^\w{2,}@\w{2,}\.\w{2,4}$/'; 
$mobilePattern ="/^[7-9][0-9]{9}$/"; 

if(preg_match($emailPattern, $email)){
    echo "Email Success!";
} else if(preg_match($mobilePattern, $email)){
    echo "Mobile Success!";
} else {
    echo "Invalid entry";
}
  1. 检查有效的电子邮件

    • 电子邮件的长度应至少为两个字aa@aa.aa
    • TLD应至少包含2个字符,最多4个字符
    • 要包含co.in等域名,请使用 - /^\w{2,}@[\w\.]{2,}\.\w{2,4}$/
  2. 检查有效的手机

    • 移动设备的长度应为10个字符,并且应该以7或8或9开头,要删除该限制,请将$mobilePattern更改为/^[0-9]{10}$/
  3. 如果电子邮件或手机无效,则会返回错误消息

答案 1 :(得分:0)

您可以检查该值是否为有效的电子邮件地址。如果是,那么你有一封电子邮件,否则你可以认为它是一个电话号码:

$email = null;
$phone = null;

// The "email" field has been submitted
if (isset($_POST["email"])) {

    // If it is an email then set the email variable
    if (filter_input(INPUT_POST, "email", FILTER_VALIDATE_EMAIL)) {
        $email = filter_input(INPUT_POST, "email", FILTER_SANITIZE_EMAIL);
    }
    // If it is a number then set the phone variable
    else if (filter_input(INPUT_POST, "email", FILTER_VALIDATE_INT)) {
        $phone = filter_input(INPUT_POST, "email", FILTER_SANITIZE_NUMBER_INT);
    }
}

if ($email !== null) {
    echo "Submitted email: {$email}";
}
if ($phone !== null) {
    echo "Submitted phone number: {$phone}";
}