全球电子邮件验证

时间:2014-08-23 19:22:50

标签: php regex validation email server-side

因此,在提交表单之前,我一直在阅读有关验证电子邮件地址的最佳方法。我在多个方面阅读正则表达式不应该用于验证电子邮件地址。 e.g。

http://www.regular-expressions.info/email.html

Validate email address in JavaScript?

我使用正则表达式的问题是,我需要能够在电子邮件中允许外来字符,因为它们可能来自世界任何地方,而且我不知道如何确保在不花费时间设置无用帐户的情况下允许它们测试。

在我的阅读中,我看到有人说应该在服务器端(也是)完成验证。

我在服务器端验证的搜索结果中获得的是指向正则表达式的链接。

我还看过使用indexOf和lastIndexOf对某些字符进行的简单验证,但我不知道如何在没有一些疯狂的复杂代码的情况下允许所有可能的域。

基本上我的问题是除了再次使用正则表达式(如果还有其他选项)之外,服务器端验证的选项是什么?

感谢任何帮助!

3 个答案:

答案 0 :(得分:2)

在PHP中,您可以使用filter_var。来自文档的示例:

$email = filter_var('bob@example.com', FILTER_VALIDATE_EMAIL);

在这种情况下,$email将包含“bob@example.com”。对于无效的电子邮件地址,它将包含false

答案 1 :(得分:2)

简短的回答:你不能这样做。您可以编写正则表达式,告诉您电子邮件地址看起来是否有效,但正如您所说,有足够的例外情况可以使该方法有问题。

您真正知道某个电子邮件地址有效的唯一方法(并且所有者用于您正在做的任何事情)是将包含唯一令牌的可点击链接发送到该地址并查看是否被点击。< / p>

答案 2 :(得分:0)

使用php进行服务器端验证 来源:http://www.w3schools.com/php/filter_validate_email.asp

<?php
$email = "someone@example.com";

if(!filter_var($email, FILTER_VALIDATE_EMAIL))
  {
  echo "E-mail is not valid";
  }
else
  {
  echo "E-mail is valid";
  }
?>