使用正则表达式验证电子邮件或手机
问题描述:
我有一个表单字段。在该领域中,用户可以输入电子邮件或移动。从一个PHP页面我得到了价值。之后,我想检查这是电子邮件ID还是手机号码。假设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]
?>
答
您可以检查输入使用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";
}
-
检查为有效的电子邮件
- 电子邮件应该有至少两个单词长度说
[email protected]
- TLD应具有至少2个字符和最大的4个字符
- 要包括像co.in域,使用 -
/^\w{2,}@[\w\.]{2,}\.\w{2,4}$/
- 电子邮件应该有至少两个单词长度说
-
检查为有效的移动
- 移动应该有10个字符长度并应以7或8或9开始,以移除该限制,将
$mobilePattern
更改为/^[0-9]{10}$/
- 移动应该有10个字符长度并应以7或8或9开始,以移除该限制,将
- 如果它不是有效的电子邮件或手机,它会返回错误消息
答
您可以检查是否值是一个有效的电子邮件地址。如果是,那么你有一个电子邮件,否则,你可以认为它是一个电话号码:
k谢谢@ Thamilan –