Проверить электронную почту или мобильный телефон с регулярным выражением

У меня есть одно поле формы. В этом поле пользователь может ввести ЭЛ. АДРЕС или же MOBILE. Со страницы PHP я получил значение. После этого я хочу проверить, является ли это адрес электронной почты или номер мобильного телефона. предполагать email означает, что я хочу, чтобы успех по электронной почте, предположим, mobile означает, что я хочу показать мобильный успех, я думаю, что мы должны написать регулярное выражение, но я не знаю, как написать регулярное выражение для этой проблемы?

 <form action="#" method="POST" id="forgotForm">
<div class="form-group has-feedback">
<input type="text" class="form-control" placeholder="Email OR Mobile" id="email" name="email" value="" aria-required="true" required="" data-msg-required="Please enter your email">
<span class="glyphicon glyphicon-envelope form-control-feedback"></span>
</div>
</form>

home.php
<?php
$email=$_POST['email'];//here value it will come like 9986128658 or [email protected]

?>

0

Решение

Вы можете проверить ввод, используя 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. Проверяет действительный адрес электронной почты

    • E-mail должен иметь длину не менее двух слов [email protected]
    • TLD должен содержать не менее 2 символов и не более 4 символов
    • Чтобы включить такие домены, как co.in, используйте — /^\w{2,}@[\w\.]{2,}\.\w{2,4}$/
  2. Проверки на действительный мобильный

    • Мобильный телефон должен иметь длину 10 символов и должен начинаться с 7, 8 или 9, чтобы снять это ограничение, измените $mobilePattern в /^[0-9]{10}$/
  3. Если это недействительный адрес электронной почты или мобильный телефон, он возвращает сообщение об ошибке
1

Другие решения

Вы можете проверить, является ли значение действительным адресом электронной почты. Если это так, у вас есть электронная почта, в противном случае вы можете предположить, что это номер телефона:

$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}";
}
0

По вопросам рекламы [email protected]