2014-01-14 46 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 :) –