2012-11-19 2 views
4

preg_match 기능을 사용하여 PHP를 사용하여 이메일 주소를 확인합니다. 하지만 오류가 여기이메일 확인 문제가있는 PHP preg_match

preg_match(): No ending delimiter '^' found 

는 preg_match

$pattern = "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$"; 

내 패턴이 어떻게이 문제를 해결하는 것입니다 다음가 계속?

+0

관련 항목 : [사용 전자 메일 주소의 유효성을 검사하는 정규 표현식] (http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-anemail-address?rq=1) – Dezza

답변

6

그냥 사용 어쩌면 쉬운 방법이 될 것인가

filter_var($email, FILTER_VALIDATE_EMAIL); 

를 사용

$pattern = "/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/i"; 
+0

이것은 완전히 유효하지 않습니다. 왜냐하면 [email protected]으로 이메일을 보낼 수 있기 때문입니다. 귀하의 패턴은이 주소가 유효하지 않다고 말합니다. 그런 전자 메일 주소를 만드는 MS Exchange와 함께 나에게 일어난 일입니다. – mkudlacek

+0

@mkudlacek 패턴을 적용하기 전에 이메일을 소문자로 바꾸고 싶습니다. – Shoe

+0

원래 질문에 대한 답변이 아닙니다. 문제는 preg_match()를 사용하여 유효성을 검사하는 방법입니다. 올바른 패턴은/^ [a-zA-Z0-9-] + (\. [Za-Z0-9-] +) * @ [a-zA-Z0-9-] + (\. [a-zA-Z0-9 -] +) (\. [a-zA-Z] {2,}) $ 또는 대소 문자를 구분하지 않으려면/i로 확장하십시오. – mkudlacek

7

.

+0

이것은 더 이상 사용되지 않습니다. 더 이상 작동하지 않습니다. – JCastell

-2
var emailid = $.trim($('#emailid').val()); 
    if(! /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(emailid)){ 
       alert("<?php echo "email_invalid" ?>"); 

       return false; 
      } 

EMAILID는 전자 메일 관리자가 전자 메일 주소에 대한 RFC 스타일의 경기를 할 수 있도록 원하는 경우에만 쉬울 것 PHP에서 함수 filter_var()를 사용하여 입력 태그

+0

jquery 코드입니다. PHP에서 필요합니다. – 2619

0

의 ID입니다. 일부 응용 프로그램 또는 MTA (센드 메일, etc ...)의 경우 이는 바람직하지 않을 수 있습니다. 그러나 preg_match() 경로를 사용하려면 비 욕심쟁이 한정 기호를 조사하고 버퍼를 사용하지 않는 문을 캡처하는 것이 좋습니다. 시작하기 좋은 곳은 http://us3.php.net/manual/en/book.pcre.php입니다.

3

사용이 코드 때문에 FILTER_VALIDATE_EMAIL에 의한 문제의

<?php 
$email = "asd/[email protected]"; 
$regex = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/'; 
$email = (preg_match($regex, $email))?$email:"invalid email"; 
?> 
+0

변수 및 삼항 연산자를 잘 사용 – DragonFire

0

은 (예를 들어 그렇지 라틴 문자로 잘 작동하지 않습니다)는, 내가 사용하는 것을 선호 :

preg_match("/^[^@][email protected][^@]+\.[a-z]{2,6}$/i",$email_address);

0

이것은 정규식을 사용한 간단한 전자 메일 검증 방법입니다.

public function emailValidation($email) 
{ 
    $regex = "/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,10})$/"; 
    $email = strtolower($email); 

    return preg_match ($regex, $email); 
}