2014-01-14 48 views
0

的有效性我有一个输入字段,如下所示输入一个电子邮件地址:检查电子邮件格式HTML输入

<input type="email" name="email" id="email" title="E-mail(Format: [email protected])"> 

我想,当用户提交电子邮件地址,以检查该有效性。所以我用这个代码:

<?php 
$email =($_POST['email']); 
if(!filter_var($email, FILTER_VALIDATE_EMAIL)) 
{ 
echo "E-mail is not valid"; 
} 
else 
{ 
echo "E-mail is valid"; }? > 

但虽然我输入一个电子邮件为'someone @ example'这将打印'电子邮件是有效的'。我如何以'[email protected]'格式验证电子邮件?这意味着'@'和'.com'的格式和需求?

+1

[**真的**](http://codepad.org/yCkItJxz)??? – Rikesh

+0

:O但在我的浏览器中,它是以电子邮件有效的方式打印的! –

+0

当你有完整的工作真棒解决方案你还想要什么? – Abhishek

回答

0

我建议使用此功能

从框架•奈特和其电子邮件验证IVE的最佳功能
public static function isEmail($value) 
    { 
    $atom = "[-a-z0-9!#$%&'*+/=?^_`{|}~]"; // RFC 5322 unquoted characters in local-part 
    $localPart = "(?:\"(?:[ !\\x23-\\x5B\\x5D-\\x7E]*|\\\\[ -~])+\"|$atom+(?:\\.$atom+)*)"; // quoted or unquoted 
    $alpha = "a-z\x80-\xFF"; // superset of IDN 
    $domain = "[0-9$alpha](?:[-0-9$alpha]{0,61}[0-9$alpha])?"; // RFC 1034 one domain component 
    $topDomain = "[$alpha](?:[-0-9$alpha]{0,17}[$alpha])?"; 
    return (bool) preg_match("(^[email protected](?:$domain\\.)+$topDomain\\z)i", $value); 
} 

其见过。

https://github.com/nette/nette/blob/master/Nette/Utils/Validators.php

+0

这不是一个替代方案。 – Abhishek

+0

它是。但它显然好一点filter_var :) –