2015-07-15 7 views
1

Я пытаюсь проверить электронную почту в php, используя ereg, где мне не разрешено вводить более двух точек после @, и она не может начинаться с каких-либо специальный персонаж, как я могу это сделать.Как разрешить только 2 точки после @ в проверке подлинности электронной почты с помощью ereg

function chk($a) 
{ 

$pattern = "^([A-Za-z0-9\.|-|_]{1,60})([@])"; 
$pattern .="([A-Za-z0-9\.|-|_]{1,60})(\.)([A-Za-z]{2,3})$"; 

    if ([email protected]($pattern, $a)) 
    return false; 
    else 
     return true; 
} 
+0

вы можете попробовать это '$ шаблон =" ([A-Za-z0-9 \ | - |. _] {1,60}). ([. \ {2}]) ([A-Za-z] {2,3}) $ ";' –

+0

Спасибо, но он все равно возвращается к действию. – HunterrJ

+0

Позвольте мне попытаться найти лучшее решение. –

ответ

3

Пожалуйста, не проверяйте свою собственную электронную почту.

if(filter_var($email, FILTER_VALIDATE_EMAIL) === true){ 
    return true; 
} else { 
    return false; 
} 
+0

Я предполагаю использовать ereg и не взорвать никаких встроенных функций. – HunterrJ

+0

звучит как домашний вопрос! – cmorrissey

+0

не совсем, нужно обойтись без встроенных функций для лучшего понимания эрга. – HunterrJ

1
preg_match("/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-][email protected][a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/",'[email protected]'); 
+0

Это, возможно, соответствует всем действительным электронным письмом. –

+0

Спасибо @Pratik, мне нужно попробовать его с помощью ereg. :) – HunterrJ

+0

вместо этого используйте 'preg_match'. ereg 'DEPRECATED'. –